From 977e2d2c09c3fbc2fd2eaead8fc7314d8d6f9fc4 Mon Sep 17 00:00:00 2001 From: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Wed, 17 Apr 2024 10:53:16 +0900 Subject: enhance(frontend): フォローするかどうかの確認ダイアログを出せるように (#13723) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(frontend): フォローするかどうかの確認ダイアログを出せるように * Update Changelog --- packages/frontend/src/components/MkFollowButton.vue | 12 ++++++++++++ packages/frontend/src/pages/settings/general.vue | 3 +++ packages/frontend/src/store.ts | 4 ++++ 3 files changed, 19 insertions(+) (limited to 'packages/frontend/src') diff --git a/packages/frontend/src/components/MkFollowButton.vue b/packages/frontend/src/components/MkFollowButton.vue index 28450e11fc..636e61db8f 100644 --- a/packages/frontend/src/components/MkFollowButton.vue +++ b/packages/frontend/src/components/MkFollowButton.vue @@ -93,6 +93,18 @@ async function onClick() { userId: props.user.id, }); } else { + if (defaultStore.state.alwaysConfirmFollow) { + const { canceled } = await os.confirm({ + type: 'question', + text: i18n.tsx.followConfirm({ name: props.user.name || props.user.username }), + }); + + if (canceled) { + wait.value = false; + return; + } + } + if (hasPendingFollowRequestFromYou.value) { await misskeyApi('following/requests/cancel', { userId: props.user.id, diff --git a/packages/frontend/src/pages/settings/general.vue b/packages/frontend/src/pages/settings/general.vue index f2f82c4808..55d514ddf9 100644 --- a/packages/frontend/src/pages/settings/general.vue +++ b/packages/frontend/src/pages/settings/general.vue @@ -165,6 +165,7 @@ SPDX-License-Identifier: AGPL-3.0-only {{ i18n.ts.keepScreenOn }} {{ i18n.ts.disableStreamingTimeline }} {{ i18n.ts.enableHorizontalSwipe }} + {{ i18n.ts.alwaysConfirmFollow }} @@ -310,6 +311,7 @@ const useGroupedNotifications = computed(defaultStore.makeGetterSetter('useGroup const enableSeasonalScreenEffect = computed(defaultStore.makeGetterSetter('enableSeasonalScreenEffect')); const enableHorizontalSwipe = computed(defaultStore.makeGetterSetter('enableHorizontalSwipe')); const useNativeUIForVideoAudioPlayer = computed(defaultStore.makeGetterSetter('useNativeUIForVideoAudioPlayer')); +const alwaysConfirmFollow = computed(defaultStore.makeGetterSetter('alwaysConfirmFollow')); watch(lang, () => { miLocalStorage.setItem('lang', lang.value as string); @@ -351,6 +353,7 @@ watch([ keepScreenOn, disableStreamingTimeline, enableSeasonalScreenEffect, + alwaysConfirmFollow, ], async () => { await reloadAsk(); }); diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index 9b5011739a..e6a348b79f 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -450,6 +450,10 @@ export const defaultStore = markRaw(new Storage('base', { where: 'device', default: true, }, + alwaysConfirmFollow: { + where: 'device', + default: true, + }, sound_masterVolume: { where: 'device', -- cgit v1.2.3-freya