From a7378cf00a82dbef801b2806313eceb2be63b967 Mon Sep 17 00:00:00 2001
From: fly_mc <me@flymc.cc>
Date: Sun, 10 Nov 2024 22:16:14 +0800
Subject: [PATCH] Revert "changeDefaultEmoji"

This reverts commit 596363e9ed76db231dd5d1b1aee48f49f3f9fec4.
---
 locales/en-US.yml                             |  2 --
 packages/frontend/src/components/MkNote.vue   | 36 ++++++++-----------
 .../src/components/MkNoteDetailed.vue         | 33 +++++++++--------
 packages/frontend/src/pages/settings/pari.vue | 13 -------
 packages/frontend/src/store.ts                |  4 ---
 5 files changed, 33 insertions(+), 55 deletions(-)

diff --git a/locales/en-US.yml b/locales/en-US.yml
index 0eda8afbe..23fe4eff6 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -2837,5 +2837,3 @@ _selfXssPrevention:
   description3: "For more information, please check here: {link}"
 insertNewNotes: "Insert new notes at current position"
 insertNewNotesDescription: "Insert new notes at the current position while scrolling timeline."
-defaultReactionEmoji: "Default reaction emoji"
-defaultReactionEmojiDescription: "Set the emoji used for quick reaction button."
diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue
index 1bf9c2c99..7b4a75109 100644
--- a/packages/frontend/src/components/MkNote.vue
+++ b/packages/frontend/src/components/MkNote.vue
@@ -500,34 +500,28 @@ function reply(): void {
 	});
 }
 
-async function toggleReaction(reaction: string): Promise<void> {
+function like(): void {
+	pleaseLogin(undefined, pleaseLoginContext.value);
+	showMovedDialog();
+	sound.playMisskeySfx('reaction');
 	if (props.mock) {
-		if (appearNote.value.myReaction) {
-			emit('removeReaction', appearNote.value.myReaction);
-		} else {
-			emit('reaction', reaction);
-		}
 		return;
 	}
-
-	if (appearNote.value.myReaction) {
-		await misskeyApi('notes/reactions/delete', {
-			noteId: appearNote.value.id,
-		});
-	} else {
-		await misskeyApi('notes/reactions/create', {
-			noteId: appearNote.value.id,
-			reaction: reaction,
+	misskeyApi('notes/reactions/create', {
+		noteId: appearNote.value.id,
+		reaction: '❤️',
+	});
+	const el = likeButton.value as HTMLElement | null | undefined;
+	if (el) {
+		const rect = el.getBoundingClientRect();
+		const x = rect.left + (el.offsetWidth / 2);
+		const y = rect.top + (el.offsetHeight / 2);
+		const { dispose } = os.popup(MkRippleEffect, { x, y }, {
+			end: () => dispose(),
 		});
 	}
 }
 
-async function like() {
-	if (props.appearNote.myReaction) return;
-	const emoji = defaultStore.state.defaultReactionEmoji;
-	await toggleReaction(emoji);
-}
-
 function react(): void {
 	pleaseLogin({ openOnRemote: pleaseLoginContext.value });
 	showMovedDialog();
diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue
index 35dfb184d..c377f2bd2 100644
--- a/packages/frontend/src/components/MkNoteDetailed.vue
+++ b/packages/frontend/src/components/MkNoteDetailed.vue
@@ -484,25 +484,28 @@ function reply(): void {
 	});
 }
 
-async function toggleReaction(reaction: string): Promise<void> {
-	if (appearNote.value.myReaction) {
-		await misskeyApi('notes/reactions/delete', {
-			noteId: appearNote.value.id,
-		});
-	} else {
-		await misskeyApi('notes/reactions/create', {
-			noteId: appearNote.value.id,
-			reaction: reaction,
+function like(): void {
+	pleaseLogin(undefined, pleaseLoginContext.value);
+	showMovedDialog();
+	sound.playMisskeySfx('reaction');
+	if (props.mock) {
+		return;
+	}
+	misskeyApi('notes/reactions/create', {
+		noteId: appearNote.value.id,
+		reaction: '❤️',
+	});
+	const el = likeButton.value as HTMLElement | null | undefined;
+	if (el) {
+		const rect = el.getBoundingClientRect();
+		const x = rect.left + (el.offsetWidth / 2);
+		const y = rect.top + (el.offsetHeight / 2);
+		const { dispose } = os.popup(MkRippleEffect, { x, y }, {
+			end: () => dispose(),
 		});
 	}
 }
 
-async function like() {
-	if (props.appearNote.myReaction) return;
-	const emoji = defaultStore.state.defaultReactionEmoji;
-	await toggleReaction(emoji);
-}
-
 function react(): void {
 	pleaseLogin({ openOnRemote: pleaseLoginContext.value });
 	showMovedDialog();
diff --git a/packages/frontend/src/pages/settings/pari.vue b/packages/frontend/src/pages/settings/pari.vue
index e2181228f..dca8ce80f 100644
--- a/packages/frontend/src/pages/settings/pari.vue
+++ b/packages/frontend/src/pages/settings/pari.vue
@@ -69,10 +69,6 @@ SPDX-License-Identifier: AGPL-3.0-only
 				<MkSwitch v-model="showDetailTimeWhenHover">{{ i18n.ts.showDetailTimeWhenHover }}</MkSwitch>
 				<MkSwitch v-model="noteClickToOpen">{{ i18n.ts.noteClickToOpen }}</MkSwitch>
 				<MkSwitch v-model="enableFallbackReactButton">{{ i18n.ts.enableFallbackReactButton }}</MkSwitch>
-				<MkButton @click="changeDefaultEmoji">
-					<template #label>{{ i18n.ts.defaultReactionEmoji }}</template>
-					<template #suffix>{{ defaultReactionEmoji }}</template>
-				</MkButton>
 				<MkSwitch v-model="enableMFMCheatsheet">{{ i18n.ts.enableMFMCheatsheet }}</MkSwitch>
 				<MkSwitch v-model="enableUndoClearPostForm">{{ i18n.ts.enableUndoClearPostForm }}</MkSwitch>
 				<MkSwitch v-model="collapseNotesRepliedTo">{{ i18n.ts.collapseNotesRepliedTo }}</MkSwitch>
@@ -110,7 +106,6 @@ import MkInfo from '@/components/MkInfo.vue';
 import MkRange from '@/components/MkRange.vue';
 import MkButton from '@/components/MkButton.vue';
 import FormSection from '@/components/form/section.vue';
-import * as os from '@/os.js';
 
 const defaultFont = getDefaultFontSettings();
 console.log(defaultFont);
@@ -143,14 +138,6 @@ const collapsedUnexpectedLangs = computed(defaultStore.makeGetterSetter('collaps
 const emojiAutoSpacing = computed(defaultStore.makeGetterSetter('emojiAutoSpacing'));
 const insertNewNotes = computed(defaultStore.makeGetterSetter('insertNewNotes'));
 
-const defaultReactionEmoji = computed(defaultStore.makeGetterSetter('defaultReactionEmoji'));
-
-async function changeDefaultEmoji() {
-	const { canceled, result: emoji } = await os.pickEmoji();
-	if (canceled) return;
-	defaultReactionEmoji.value = emoji;
-}
-
 definePageMetadata(() => ({
 	title: 'Pari Plus!',
 	icon: 'ti ti-plus',
diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts
index 8141eb2b6..586bb1fa4 100644
--- a/packages/frontend/src/store.ts
+++ b/packages/frontend/src/store.ts
@@ -563,10 +563,6 @@ export const defaultStore = markRaw(new Storage('base', {
 		where: 'device',
 		default: false,
 	},
-	defaultReactionEmoji: {
-		where: 'device',
-		default: '♥',
-	},
 }));
 
 // TODO: 他のタブと永続化されたstateを同期