From 09b8bda990f5be59fb03645d321adbd30990be23 Mon Sep 17 00:00:00 2001 From: dakkar Date: Mon, 7 Apr 2025 16:37:56 +0100 Subject: [PATCH 01/14] maybe improve/fix privacy settings search a bunch of label/markers/keywords had gone missing plus I've added those for our settings --- .../frontend/src/pages/settings/privacy.vue | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/packages/frontend/src/pages/settings/privacy.vue b/packages/frontend/src/pages/settings/privacy.vue index 8d8d8ae21c..b7a101af3d 100644 --- a/packages/frontend/src/pages/settings/privacy.vue +++ b/packages/frontend/src/pages/settings/privacy.vue @@ -64,10 +64,17 @@ SPDX-License-Identifier: AGPL-3.0-only + + + + + + + - {{ i18n.ts.makeIndexable }} - + + @@ -80,15 +87,8 @@ SPDX-License-Identifier: AGPL-3.0-only - {{ i18n.ts.enableRss }} - - - - - - - - + + @@ -198,12 +198,12 @@ SPDX-License-Identifier: AGPL-3.0-only - + - - + + @@ -214,9 +214,9 @@ SPDX-License-Identifier: AGPL-3.0-only
- {{ i18n.ts.rememberNoteVisibility }} + {{ i18n.ts.rememberNoteVisibility }} - + @@ -237,16 +237,16 @@ SPDX-License-Identifier: AGPL-3.0-only
- {{ i18n.ts.keepCw }} + {{ i18n.ts.keepCw }} - - + + - - + + @@ -289,6 +289,7 @@ const $i = ensureSignin(); const isLocked = ref($i.isLocked); const autoAcceptFollowed = ref($i.autoAcceptFollowed); const noCrawle = ref($i.noCrawle); +const preventAiLearning = ref($i.preventAiLearning); const noindex = ref($i.noindex); const enableRss = ref($i.enableRss); const isExplorable = ref($i.isExplorable); @@ -309,8 +310,6 @@ const computedAllowUnsignedFetch = computed(() => { } return instance.allowUnsignedFetch; }); - -const preventAiLearning = ref($i.preventAiLearning); const defaultNoteVisibility = prefer.model('defaultNoteVisibility'); const defaultNoteLocalOnly = prefer.model('defaultNoteLocalOnly'); const rememberNoteVisibility = prefer.model('rememberNoteVisibility'); @@ -358,6 +357,7 @@ function save() { isLocked: !!isLocked.value, autoAcceptFollowed: !!autoAcceptFollowed.value, noCrawle: !!noCrawle.value, + preventAiLearning: !!preventAiLearning.value, noindex: !!noindex.value, enableRss: !!enableRss.value, isExplorable: !!isExplorable.value, From c5aee8c92b66872b0b1b094853045f88b4d80e28 Mon Sep 17 00:00:00 2001 From: dakkar Date: Mon, 7 Apr 2025 16:51:44 +0100 Subject: [PATCH 02/14] improve search for "default with replies" --- packages/frontend/src/pages/settings/other.vue | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/frontend/src/pages/settings/other.vue b/packages/frontend/src/pages/settings/other.vue index e6405954e8..c3ec4230f2 100644 --- a/packages/frontend/src/pages/settings/other.vue +++ b/packages/frontend/src/pages/settings/other.vue @@ -131,13 +131,15 @@ SPDX-License-Identifier: AGPL-3.0-only
- -
- {{ i18n.ts.withRepliesByDefaultForNewlyFollowed }} - {{ i18n.ts.showRepliesToOthersInTimelineAll }} - {{ i18n.ts.hideRepliesToOthersInTimelineAll }} -
-
+ + +
+ {{ i18n.ts.withRepliesByDefaultForNewlyFollowed }} + {{ i18n.ts.showRepliesToOthersInTimelineAll }} + {{ i18n.ts.hideRepliesToOthersInTimelineAll }} +
+
+

From be3366d6dbecd62f3cb2b657123e953be5cf3527 Mon Sep 17 00:00:00 2001 From: dakkar Date: Mon, 7 Apr 2025 17:12:47 +0100 Subject: [PATCH 03/14] add MkPreferenceContainer for our settings --- .../src/pages/settings/preferences.vue | 180 +++++++++++------- 1 file changed, 106 insertions(+), 74 deletions(-) diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 3475767d28..9ea3f2739b 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -141,21 +141,27 @@ SPDX-License-Identifier: AGPL-3.0-only - - - + + + + + - - - + + + + + - - - + + + + + @@ -184,40 +190,48 @@ SPDX-License-Identifier: AGPL-3.0-only - - - + + + + + - - - + + + + + - - - - - - - - + + + + + + + + + + - - - - - + + + + + + +
@@ -328,10 +342,12 @@ SPDX-License-Identifier: AGPL-3.0-only
- - - - + + + + + +
@@ -415,22 +431,26 @@ SPDX-License-Identifier: AGPL-3.0-only
- - - + + + + + - - - + + {{ i18n.ts.verifyNotificationDotWorkingButton }} @@ -705,23 +725,29 @@ SPDX-License-Identifier: AGPL-3.0-only
- - - - - + + + + + + + - - - + + + + + - - - + + + + + @@ -765,18 +791,22 @@ SPDX-License-Identifier: AGPL-3.0-only
- - - - + + + + + + - - - - - - + + + + + + + +
@@ -790,9 +820,11 @@ SPDX-License-Identifier: AGPL-3.0-only
- - - + + + + + From 42aedca5d7f2b3cfe0806076e9c673ef4908b52e Mon Sep 17 00:00:00 2001 From: dakkar Date: Mon, 7 Apr 2025 17:31:25 +0100 Subject: [PATCH 04/14] add some missing preferences to the definitions --- packages/frontend/src/preferences/def.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/frontend/src/preferences/def.ts b/packages/frontend/src/preferences/def.ts index 110d454df9..f7eb299bb7 100644 --- a/packages/frontend/src/preferences/def.ts +++ b/packages/frontend/src/preferences/def.ts @@ -208,6 +208,9 @@ export const PREF_DEF = { nsfw: { default: 'respect' as 'respect' | 'force' | 'ignore', }, + numberOfReplies: { + default: 5, + }, highlightSensitiveMedia: { default: false, }, @@ -304,6 +307,9 @@ export const PREF_DEF = { forceShowAds: { default: false, }, + oneko: { + default: false, + }, aiChanMode: { default: false, }, @@ -331,6 +337,12 @@ export const PREF_DEF = { useGroupedNotifications: { default: true, }, + notificationClickable: { + default: false, + }, + enableFaviconNotificationDot: { + default: true, + }, dataSaver: { default: { media: false, @@ -345,6 +357,9 @@ export const PREF_DEF = { enableSeasonalScreenEffect: { default: false, }, + cornerRadius: { + default: null as 'Misskey' | null, + }, enableHorizontalSwipe: { default: true, }, From 13bf4b919b2ed1ded586e66e99f433da16160142 Mon Sep 17 00:00:00 2001 From: dakkar Date: Mon, 7 Apr 2025 17:32:42 +0100 Subject: [PATCH 05/14] label the cat --- packages/frontend/src/pages/settings/preferences.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 9ea3f2739b..cb764f5042 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -822,7 +822,7 @@ SPDX-License-Identifier: AGPL-3.0-only - + From ffbf33bcb3825a3c0721ab03a042e659bccf6d70 Mon Sep 17 00:00:00 2001 From: dakkar Date: Mon, 7 Apr 2025 17:38:30 +0100 Subject: [PATCH 06/14] further settings search fixes --- packages/frontend/src/pages/settings/other.vue | 2 +- .../frontend/src/pages/settings/preferences.vue | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/frontend/src/pages/settings/other.vue b/packages/frontend/src/pages/settings/other.vue index c3ec4230f2..1075002d53 100644 --- a/packages/frontend/src/pages/settings/other.vue +++ b/packages/frontend/src/pages/settings/other.vue @@ -68,7 +68,7 @@ SPDX-License-Identifier: AGPL-3.0-only - +
{{ i18n.ts._dataRequest.warn }} diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index cb764f5042..0d3ead9218 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -787,18 +787,16 @@ SPDX-License-Identifier: AGPL-3.0-only - - -
- + + + +
- - @@ -807,9 +805,9 @@ SPDX-License-Identifier: AGPL-3.0-only - -
-
+
+
+ From e33d8deeee3215decbf3d07159c107ed18b205c7 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 12 Apr 2025 10:52:22 +0100 Subject: [PATCH 07/14] mark Sharkey's old prefs --- packages/frontend/src/store.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index 245833fb43..cbb14ae33a 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -470,6 +470,8 @@ export const store = markRaw(new Pizzax('base', { sfxVolume: 1, }, }, + //#endregion + //#region Sharkey collapseNotesRepliedTo: { where: 'device', default: false, @@ -534,7 +536,6 @@ export const store = markRaw(new Pizzax('base', { where: 'device', default: 'sharkey' as 'sharkey' | 'misskey', }, - //#endregion oneko: { where: 'device', default: false, @@ -559,6 +560,7 @@ export const store = markRaw(new Pizzax('base', { where: 'device', default: true, }, + //#endregion })); // TODO: 他のタブと永続化されたstateを同期 From e1745ea23cb16e56e042fc2708e6c52516bfc965 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 12 Apr 2025 11:13:36 +0100 Subject: [PATCH 08/14] sort our store/prefs, migrate all of them also fix `cornerRadius` --- .../src/pages/settings/preferences.vue | 22 +-- packages/frontend/src/pref-migrate.ts | 35 +++-- packages/frontend/src/preferences/def.ts | 129 +++++++++--------- packages/frontend/src/store.ts | 117 ++++++++-------- 4 files changed, 158 insertions(+), 145 deletions(-) diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 0d3ead9218..4f0a785091 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -725,13 +725,11 @@ SPDX-License-Identifier: AGPL-3.0-only - - - - - - - + + + + + @@ -972,9 +970,9 @@ const notificationClickable = computed(store.makeGetterSetter('notificationClick const warnExternalUrl = prefer.model('warnExternalUrl'); const showVisibilitySelectorOnBoost = prefer.model('showVisibilitySelectorOnBoost'); const visibilityOnBoost = prefer.model('visibilityOnBoost'); -const cornerRadius = computed(store.makeGetterSetter('cornerRadius')); const oneko = computed(store.makeGetterSetter('oneko')); const numberOfReplies = computed(store.makeGetterSetter('numberOfReplies')); +const cornerRadius = ref(miLocalStorage.getItem('cornerRadius')); const useCustomSearchEngine = computed(() => !Object.keys(searchEngineMap).includes(searchEngine.value)); @@ -1000,6 +998,14 @@ watch(useSystemFont, () => { } }); +watch(cornerRadius, () => { + if (cornerRadius.value == null) { + miLocalStorage.removeItem('cornerRadius'); + } else { + miLocalStorage.setItem('cornerRadius', cornerRadius.value); + } +}); + watch([ hemisphere, lang, diff --git a/packages/frontend/src/pref-migrate.ts b/packages/frontend/src/pref-migrate.ts index ed08d5382f..35397b6246 100644 --- a/packages/frontend/src/pref-migrate.ts +++ b/packages/frontend/src/pref-migrate.ts @@ -134,23 +134,30 @@ export function migrateOldSettings() { prefer.commit('sound.on.reaction', store.s.sound_reaction as any); prefer.commit('defaultNoteVisibility', store.s.defaultNoteVisibility); prefer.commit('defaultNoteLocalOnly', store.s.defaultNoteLocalOnly); - // Sharkey migrations - prefer.commit('collapseNotesRepliedTo', store.s.collapseNotesRepliedTo); - prefer.commit('collapseFiles', store.s.collapseFiles); - prefer.commit('uncollapseCW', store.s.uncollapseCW); - prefer.commit('expandLongNote', store.s.expandLongNote); - prefer.commit('like', store.s.like); + + //#region Sharkey migrations prefer.commit('autoloadConversation', store.s.autoloadConversation); - prefer.commit('showVisibilitySelectorOnBoost', store.s.showVisibilitySelectorOnBoost); - prefer.commit('visibilityOnBoost', store.s.visibilityOnBoost); - prefer.commit('trustedDomains', store.s.trustedDomains); - prefer.commit('warnExternalUrl', store.s.warnExternalUrl); - prefer.commit('followingFeed', store.s.followingFeed); - prefer.commit('warnMissingAltText', store.s.warnMissingAltText); + prefer.commit('clickToOpen', store.s.clickToOpen); + prefer.commit('collapseFiles', store.s.collapseFiles); + prefer.commit('collapseNotesRepliedTo', store.s.collapseNotesRepliedTo); prefer.commit('disableCatSpeak', store.s.disableCatSpeak); - prefer.commit('showTickerOnReplies', store.s.showTickerOnReplies); - prefer.commit('searchEngine', store.s.searchEngine); + prefer.commit('enableFaviconNotificationDot', store.s.enableFaviconNotificationDot); + prefer.commit('expandLongNote', store.s.expandLongNote); + prefer.commit('followingFeed', store.s.followingFeed); + prefer.commit('like', store.s.like); prefer.commit('noteDesign', store.s.noteDesign); + prefer.commit('notificationClickable', store.s.notificationClickable); + prefer.commit('numberOfReplies', store.s.numberOfReplies); + prefer.commit('oneko', store.s.oneko); + prefer.commit('searchEngine', store.s.searchEngine); + prefer.commit('showTickerOnReplies', store.s.showTickerOnReplies); + prefer.commit('showVisibilitySelectorOnBoost', store.s.showVisibilitySelectorOnBoost); + prefer.commit('trustedDomains', store.s.trustedDomains); + prefer.commit('uncollapseCW', store.s.uncollapseCW); + prefer.commit('visibilityOnBoost', store.s.visibilityOnBoost); + prefer.commit('warnExternalUrl', store.s.warnExternalUrl); + prefer.commit('warnMissingAltText', store.s.warnMissingAltText); + //#endregion window.setTimeout(() => { unisonReload(); diff --git a/packages/frontend/src/preferences/def.ts b/packages/frontend/src/preferences/def.ts index f7eb299bb7..063f3b60b8 100644 --- a/packages/frontend/src/preferences/def.ts +++ b/packages/frontend/src/preferences/def.ts @@ -130,54 +130,6 @@ export const PREF_DEF = { collapseRenotes: { default: false, }, - collapseNotesRepliedTo: { - default: false, - }, - collapseFiles: { - default: false, - }, - uncollapseCW: { - default: false, - }, - expandLongNote: { - default: false, - }, - like: { - default: null as string | null, - }, - autoloadConversation: { - default: true, - }, - showVisibilitySelectorOnBoost: { - default: true, - }, - visibilityOnBoost: { - default: 'public' as 'public' | 'home' | 'followers', - }, - trustedDomains: { - default: [] as string[], - }, - warnExternalUrl: { - default: true, - }, - followingFeed: { - default: defaultFollowingFeedState as Partial, - }, - warnMissingAltText: { - default: true, - }, - disableCatSpeak: { - default: false, - }, - showTickerOnReplies: { - default: false, - }, - searchEngine: { - default: Object.keys(searchEngineMap)[0], - }, - noteDesign: { - default: 'sharkey' as 'sharkey' | 'misskey', - }, menu: { default: [ 'notifications', @@ -208,9 +160,6 @@ export const PREF_DEF = { nsfw: { default: 'respect' as 'respect' | 'force' | 'ignore', }, - numberOfReplies: { - default: 5, - }, highlightSensitiveMedia: { default: false, }, @@ -307,9 +256,6 @@ export const PREF_DEF = { forceShowAds: { default: false, }, - oneko: { - default: false, - }, aiChanMode: { default: false, }, @@ -337,12 +283,6 @@ export const PREF_DEF = { useGroupedNotifications: { default: true, }, - notificationClickable: { - default: false, - }, - enableFaviconNotificationDot: { - default: true, - }, dataSaver: { default: { media: false, @@ -357,9 +297,6 @@ export const PREF_DEF = { enableSeasonalScreenEffect: { default: false, }, - cornerRadius: { - default: null as 'Misskey' | null, - }, enableHorizontalSwipe: { default: true, }, @@ -467,4 +404,70 @@ export const PREF_DEF = { 'experimental.stackingRouterView': { default: false, }, + + //#region Sharkey + autoloadConversation: { + default: true, + }, + clickToOpen: { + default: true, + }, + collapseFiles: { + default: false, + }, + collapseNotesRepliedTo: { + default: false, + }, + disableCatSpeak: { + default: false, + }, + enableFaviconNotificationDot: { + default: true, + }, + expandLongNote: { + default: false, + }, + followingFeed: { + default: defaultFollowingFeedState as Partial, + }, + like: { + default: null as string | null, + }, + noteDesign: { + default: 'sharkey' as 'sharkey' | 'misskey', + }, + notificationClickable: { + default: false, + }, + numberOfReplies: { + default: 5, + }, + oneko: { + default: false, + }, + searchEngine: { + default: Object.keys(searchEngineMap)[0], + }, + showTickerOnReplies: { + default: false, + }, + showVisibilitySelectorOnBoost: { + default: true, + }, + trustedDomains: { + default: [] as string[], + }, + uncollapseCW: { + default: false, + }, + visibilityOnBoost: { + default: 'public' as 'public' | 'home' | 'followers', + }, + warnExternalUrl: { + default: true, + }, + warnMissingAltText: { + default: true, + }, + //#endregion } satisfies PreferencesDefinition; diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index cbb14ae33a..9aa72152b1 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -471,92 +471,89 @@ export const store = markRaw(new Pizzax('base', { }, }, //#endregion + //#region Sharkey - collapseNotesRepliedTo: { + autoloadConversation: { where: 'device', - default: false, + default: true, + }, + clickToOpen: { + where: 'device', + default: true, }, collapseFiles: { where: 'device', default: false, }, - uncollapseCW: { + collapseNotesRepliedTo: { where: 'device', default: false, }, - expandLongNote: { - where: 'device', - default: false, - }, - like: { - where: 'device', - default: null as string | null, - }, - autoloadConversation: { - where: 'device', - default: true, - }, - showVisibilitySelectorOnBoost: { - where: 'device', - default: true, - }, - visibilityOnBoost: { - where: 'device', - default: 'public' as 'public' | 'home' | 'followers', - }, - trustedDomains: { - where: 'device', - default: [] as string[], - }, - warnExternalUrl: { - where: 'device', - default: true, - }, - followingFeed: { - where: 'device', - default: defaultFollowingFeedState as Partial, - }, - warnMissingAltText: { - where: 'device', - default: true, - }, disableCatSpeak: { where: 'device', default: false, }, - showTickerOnReplies: { - where: 'device', - default: false, - }, - searchEngine: { - where: 'device', - default: Object.keys(searchEngineMap)[0], - }, - noteDesign: { - where: 'device', - default: 'sharkey' as 'sharkey' | 'misskey', - }, - oneko: { - where: 'device', - default: false, - }, enableFaviconNotificationDot: { where: 'device', default: true, }, - numberOfReplies: { + expandLongNote: { where: 'device', - default: 5, + default: false, + }, + followingFeed: { + where: 'device', + default: defaultFollowingFeedState as Partial, + }, + like: { + where: 'device', + default: null as string | null, + }, + noteDesign: { + where: 'device', + default: 'sharkey' as 'sharkey' | 'misskey', }, notificationClickable: { where: 'device', default: false, }, - cornerRadius: { + numberOfReplies: { where: 'device', - default: null as 'Misskey' | null, + default: 5, }, - clickToOpen: { + oneko: { + where: 'device', + default: false, + }, + searchEngine: { + where: 'device', + default: Object.keys(searchEngineMap)[0], + }, + showTickerOnReplies: { + where: 'device', + default: false, + }, + showVisibilitySelectorOnBoost: { + where: 'device', + default: true, + }, + trustedDomains: { + where: 'device', + default: [] as string[], + }, + uncollapseCW: { + where: 'device', + default: false, + }, + visibilityOnBoost: { + where: 'device', + default: 'public' as 'public' | 'home' | 'followers', + }, + warnExternalUrl: { + where: 'device', + default: true, + }, + warnMissingAltText: { where: 'device', default: true, }, From c4d886933e06946b0bf6eb76e969c786c3292270 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 12 Apr 2025 11:23:03 +0100 Subject: [PATCH 09/14] fix the models of some of our prefs --- packages/frontend/src/pages/settings/preferences.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 4f0a785091..5cab7ae2a4 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -964,15 +964,15 @@ const noteDesign = prefer.model('noteDesign'); const uncollapseCW = prefer.model('uncollapseCW'); const expandLongNote = prefer.model('expandLongNote'); const disableCatSpeak = prefer.model('disableCatSpeak'); -const enableFaviconNotificationDot = computed(store.makeGetterSetter('enableFaviconNotificationDot')); +const enableFaviconNotificationDot = prefer.model('enableFaviconNotificationDot'); const warnMissingAltText = prefer.model('warnMissingAltText'); -const notificationClickable = computed(store.makeGetterSetter('notificationClickable')); +const notificationClickable = prefer.model('notificationClickable'); const warnExternalUrl = prefer.model('warnExternalUrl'); const showVisibilitySelectorOnBoost = prefer.model('showVisibilitySelectorOnBoost'); const visibilityOnBoost = prefer.model('visibilityOnBoost'); -const oneko = computed(store.makeGetterSetter('oneko')); -const numberOfReplies = computed(store.makeGetterSetter('numberOfReplies')); const cornerRadius = ref(miLocalStorage.getItem('cornerRadius')); +const oneko = prefer.model('oneko'); +const numberOfReplies = prefer.model('numberOfReplies'); const useCustomSearchEngine = computed(() => !Object.keys(searchEngineMap).includes(searchEngine.value)); From 3ff3484dba4cf1a000465c9b567ecb0a10f20e28 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 12 Apr 2025 11:54:14 +0100 Subject: [PATCH 10/14] update SkOldNoteWindow * fix nyaize * make MkPoll and plugins the same as `[MS]kNote` --- .../src/components/SkOldNoteWindow.vue | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/frontend/src/components/SkOldNoteWindow.vue b/packages/frontend/src/components/SkOldNoteWindow.vue index 463a71ccd0..bd5368351b 100644 --- a/packages/frontend/src/components/SkOldNoteWindow.vue +++ b/packages/frontend/src/components/SkOldNoteWindow.vue @@ -34,25 +34,25 @@ SPDX-License-Identifier: AGPL-3.0-only

- +

({{ i18n.ts.private }}) - + RN:
{{ i18n.t('translatedFrom', { x: translation.sourceLang }) }}: - +
-
+
- +
@@ -117,11 +117,18 @@ let note = ref(deepClone(props.note)); const noteViewInterruptors = getPluginHandlers('note_view_interruptor'); if (noteViewInterruptors.length > 0) { onMounted(async () => { - let result = deepClone(note.value); + let result: Misskey.entities.Note | null = deepClone(note.value); for (const interruptor of noteViewInterruptors) { - result = await interruptor.handler(result); + try { + result = await interruptor.handler(result!) as Misskey.entities.Note | null; + if (result === null) { + return; + } + } catch (err) { + console.error(err); + } } - note.value = result; + note.value = result as Misskey.entities.Note; }); } From dbb04c6c0a05f63e03f793fbf839ef06a5a02198 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 12 Apr 2025 11:54:56 +0100 Subject: [PATCH 11/14] fix type in MkEmojiPicker --- packages/frontend/src/components/MkEmojiPicker.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/frontend/src/components/MkEmojiPicker.vue b/packages/frontend/src/components/MkEmojiPicker.vue index 880f12f3fb..6b1add81bc 100644 --- a/packages/frontend/src/components/MkEmojiPicker.vue +++ b/packages/frontend/src/components/MkEmojiPicker.vue @@ -190,7 +190,7 @@ function parseAndMergeCategories(input: string, root: CustomEmojiFolderTree): Cu const parts = input.split('/').map(p => p.trim()); let currentNode: CustomEmojiFolderTree = root; - const currentPath = []; + const currentPath = [] as string[]; for (const part of parts) { currentPath.push(part); let existingNode = currentNode.children.find((node) => node.value === part); From be76469d4fab41f20fc56f4eeeb00ee98ac64cac Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 12 Apr 2025 13:29:24 +0100 Subject: [PATCH 12/14] put `autoloadConversation` back it got lost in the merge --- packages/frontend/src/pages/settings/preferences.vue | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 5cab7ae2a4..f3fb7dc51e 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -341,6 +341,14 @@ SPDX-License-Identifier: AGPL-3.0-only + + + + + + + + @@ -973,6 +981,7 @@ const visibilityOnBoost = prefer.model('visibilityOnBoost'); const cornerRadius = ref(miLocalStorage.getItem('cornerRadius')); const oneko = prefer.model('oneko'); const numberOfReplies = prefer.model('numberOfReplies'); +const autoloadConversation = prefer.model('autoloadConversation'); const useCustomSearchEngine = computed(() => !Object.keys(searchEngineMap).includes(searchEngine.value)); From f9c61b452e74b49f0d7b571f42c031d4d76b1537 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 12 Apr 2025 13:47:24 +0100 Subject: [PATCH 13/14] fix `where` of our settings, should fix migrations --- packages/frontend/src/store.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index 9aa72152b1..32acaeaf99 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -474,7 +474,7 @@ export const store = markRaw(new Pizzax('base', { //#region Sharkey autoloadConversation: { - where: 'device', + where: 'account', default: true, }, clickToOpen: { @@ -482,15 +482,15 @@ export const store = markRaw(new Pizzax('base', { default: true, }, collapseFiles: { - where: 'device', + where: 'account', default: false, }, collapseNotesRepliedTo: { - where: 'device', + where: 'account', default: false, }, disableCatSpeak: { - where: 'device', + where: 'account', default: false, }, enableFaviconNotificationDot: { @@ -502,11 +502,11 @@ export const store = markRaw(new Pizzax('base', { default: false, }, followingFeed: { - where: 'device', + where: 'account', default: defaultFollowingFeedState as Partial, }, like: { - where: 'device', + where: 'account', default: null as string | null, }, noteDesign: { @@ -526,7 +526,7 @@ export const store = markRaw(new Pizzax('base', { default: false, }, searchEngine: { - where: 'device', + where: 'account', default: Object.keys(searchEngineMap)[0], }, showTickerOnReplies: { @@ -534,23 +534,23 @@ export const store = markRaw(new Pizzax('base', { default: false, }, showVisibilitySelectorOnBoost: { - where: 'device', + where: 'account', default: true, }, trustedDomains: { - where: 'device', + where: 'account', default: [] as string[], }, uncollapseCW: { - where: 'device', + where: 'account', default: false, }, visibilityOnBoost: { - where: 'device', + where: 'account', default: 'public' as 'public' | 'home' | 'followers', }, warnExternalUrl: { - where: 'device', + where: 'account', default: true, }, warnMissingAltText: { From ebc1001e3f3d4f490f10f5a798bb60b7ea5e94cf Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 12 Apr 2025 13:47:39 +0100 Subject: [PATCH 14/14] put `clickToOpen` and `collapseFiles` back --- .../src/pages/settings/preferences.vue | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index f3fb7dc51e..c1ec725e47 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -156,6 +156,14 @@ SPDX-License-Identifier: AGPL-3.0-only + + + + + + + + @@ -596,6 +604,14 @@ SPDX-License-Identifier: AGPL-3.0-only + + + + + + + +
@@ -970,6 +986,7 @@ const showTickerOnReplies = prefer.model('showTickerOnReplies'); const searchEngine = prefer.model('searchEngine'); const noteDesign = prefer.model('noteDesign'); const uncollapseCW = prefer.model('uncollapseCW'); +const collapseFiles = prefer.model('collapseFiles'); const expandLongNote = prefer.model('expandLongNote'); const disableCatSpeak = prefer.model('disableCatSpeak'); const enableFaviconNotificationDot = prefer.model('enableFaviconNotificationDot'); @@ -982,7 +999,7 @@ const cornerRadius = ref(miLocalStorage.getItem('cornerRadius')); const oneko = prefer.model('oneko'); const numberOfReplies = prefer.model('numberOfReplies'); const autoloadConversation = prefer.model('autoloadConversation'); - +const clickToOpen = prefer.model('clickToOpen'); const useCustomSearchEngine = computed(() => !Object.keys(searchEngineMap).includes(searchEngine.value)); watch(lang, () => {