sort our store/prefs, migrate all of them

also fix `cornerRadius`
This commit is contained in:
dakkar 2025-04-12 11:13:36 +01:00
parent e33d8deeee
commit e1745ea23c
4 changed files with 158 additions and 145 deletions

View file

@ -725,13 +725,11 @@ SPDX-License-Identifier: AGPL-3.0-only
</SearchMarker> </SearchMarker>
<SearchMarker :keywords="['corner', 'radius']"> <SearchMarker :keywords="['corner', 'radius']">
<MkPreferenceContainer k="cornerRadius">
<MkRadios v-model="cornerRadius"> <MkRadios v-model="cornerRadius">
<template #label><SearchLabel>{{ i18n.ts.cornerRadius }}</SearchLabel></template> <template #label><SearchLabel>{{ i18n.ts.cornerRadius }}</SearchLabel></template>
<option :value="null"><i class="sk-icons sk-shark sk-icons-lg" style="top: 2px;position: relative;"></i> Sharkey</option> <option :value="null"><i class="sk-icons sk-shark sk-icons-lg" style="top: 2px;position: relative;"></i> Sharkey</option>
<option value="misskey"><i class="sk-icons sk-misskey sk-icons-lg" style="top: 2px;position: relative;"></i> Misskey</option> <option value="misskey"><i class="sk-icons sk-misskey sk-icons-lg" style="top: 2px;position: relative;"></i> Misskey</option>
</MkRadios> </MkRadios>
</MkPreferenceContainer>
</SearchMarker> </SearchMarker>
<SearchMarker :keywords="['warn', 'missing', 'alt', 'text']"> <SearchMarker :keywords="['warn', 'missing', 'alt', 'text']">
@ -972,9 +970,9 @@ const notificationClickable = computed(store.makeGetterSetter('notificationClick
const warnExternalUrl = prefer.model('warnExternalUrl'); const warnExternalUrl = prefer.model('warnExternalUrl');
const showVisibilitySelectorOnBoost = prefer.model('showVisibilitySelectorOnBoost'); const showVisibilitySelectorOnBoost = prefer.model('showVisibilitySelectorOnBoost');
const visibilityOnBoost = prefer.model('visibilityOnBoost'); const visibilityOnBoost = prefer.model('visibilityOnBoost');
const cornerRadius = computed(store.makeGetterSetter('cornerRadius'));
const oneko = computed(store.makeGetterSetter('oneko')); const oneko = computed(store.makeGetterSetter('oneko'));
const numberOfReplies = computed(store.makeGetterSetter('numberOfReplies')); const numberOfReplies = computed(store.makeGetterSetter('numberOfReplies'));
const cornerRadius = ref(miLocalStorage.getItem('cornerRadius'));
const useCustomSearchEngine = computed(() => !Object.keys(searchEngineMap).includes(searchEngine.value)); 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([ watch([
hemisphere, hemisphere,
lang, lang,

View file

@ -134,23 +134,30 @@ export function migrateOldSettings() {
prefer.commit('sound.on.reaction', store.s.sound_reaction as any); prefer.commit('sound.on.reaction', store.s.sound_reaction as any);
prefer.commit('defaultNoteVisibility', store.s.defaultNoteVisibility); prefer.commit('defaultNoteVisibility', store.s.defaultNoteVisibility);
prefer.commit('defaultNoteLocalOnly', store.s.defaultNoteLocalOnly); prefer.commit('defaultNoteLocalOnly', store.s.defaultNoteLocalOnly);
// Sharkey migrations
prefer.commit('collapseNotesRepliedTo', store.s.collapseNotesRepliedTo); //#region Sharkey migrations
prefer.commit('collapseFiles', store.s.collapseFiles);
prefer.commit('uncollapseCW', store.s.uncollapseCW);
prefer.commit('expandLongNote', store.s.expandLongNote);
prefer.commit('like', store.s.like);
prefer.commit('autoloadConversation', store.s.autoloadConversation); prefer.commit('autoloadConversation', store.s.autoloadConversation);
prefer.commit('showVisibilitySelectorOnBoost', store.s.showVisibilitySelectorOnBoost); prefer.commit('clickToOpen', store.s.clickToOpen);
prefer.commit('visibilityOnBoost', store.s.visibilityOnBoost); prefer.commit('collapseFiles', store.s.collapseFiles);
prefer.commit('trustedDomains', store.s.trustedDomains); prefer.commit('collapseNotesRepliedTo', store.s.collapseNotesRepliedTo);
prefer.commit('warnExternalUrl', store.s.warnExternalUrl);
prefer.commit('followingFeed', store.s.followingFeed);
prefer.commit('warnMissingAltText', store.s.warnMissingAltText);
prefer.commit('disableCatSpeak', store.s.disableCatSpeak); prefer.commit('disableCatSpeak', store.s.disableCatSpeak);
prefer.commit('showTickerOnReplies', store.s.showTickerOnReplies); prefer.commit('enableFaviconNotificationDot', store.s.enableFaviconNotificationDot);
prefer.commit('searchEngine', store.s.searchEngine); 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('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(() => { window.setTimeout(() => {
unisonReload(); unisonReload();

View file

@ -130,54 +130,6 @@ export const PREF_DEF = {
collapseRenotes: { collapseRenotes: {
default: false, 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<FollowingFeedState>,
},
warnMissingAltText: {
default: true,
},
disableCatSpeak: {
default: false,
},
showTickerOnReplies: {
default: false,
},
searchEngine: {
default: Object.keys(searchEngineMap)[0],
},
noteDesign: {
default: 'sharkey' as 'sharkey' | 'misskey',
},
menu: { menu: {
default: [ default: [
'notifications', 'notifications',
@ -208,9 +160,6 @@ export const PREF_DEF = {
nsfw: { nsfw: {
default: 'respect' as 'respect' | 'force' | 'ignore', default: 'respect' as 'respect' | 'force' | 'ignore',
}, },
numberOfReplies: {
default: 5,
},
highlightSensitiveMedia: { highlightSensitiveMedia: {
default: false, default: false,
}, },
@ -307,9 +256,6 @@ export const PREF_DEF = {
forceShowAds: { forceShowAds: {
default: false, default: false,
}, },
oneko: {
default: false,
},
aiChanMode: { aiChanMode: {
default: false, default: false,
}, },
@ -337,12 +283,6 @@ export const PREF_DEF = {
useGroupedNotifications: { useGroupedNotifications: {
default: true, default: true,
}, },
notificationClickable: {
default: false,
},
enableFaviconNotificationDot: {
default: true,
},
dataSaver: { dataSaver: {
default: { default: {
media: false, media: false,
@ -357,9 +297,6 @@ export const PREF_DEF = {
enableSeasonalScreenEffect: { enableSeasonalScreenEffect: {
default: false, default: false,
}, },
cornerRadius: {
default: null as 'Misskey' | null,
},
enableHorizontalSwipe: { enableHorizontalSwipe: {
default: true, default: true,
}, },
@ -467,4 +404,70 @@ export const PREF_DEF = {
'experimental.stackingRouterView': { 'experimental.stackingRouterView': {
default: false, 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<FollowingFeedState>,
},
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; } satisfies PreferencesDefinition;

View file

@ -471,92 +471,89 @@ export const store = markRaw(new Pizzax('base', {
}, },
}, },
//#endregion //#endregion
//#region Sharkey //#region Sharkey
collapseNotesRepliedTo: { autoloadConversation: {
where: 'device', where: 'device',
default: false, default: true,
},
clickToOpen: {
where: 'device',
default: true,
}, },
collapseFiles: { collapseFiles: {
where: 'device', where: 'device',
default: false, default: false,
}, },
uncollapseCW: { collapseNotesRepliedTo: {
where: 'device', where: 'device',
default: false, 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<FollowingFeedState>,
},
warnMissingAltText: {
where: 'device',
default: true,
},
disableCatSpeak: { disableCatSpeak: {
where: 'device', where: 'device',
default: false, 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: { enableFaviconNotificationDot: {
where: 'device', where: 'device',
default: true, default: true,
}, },
numberOfReplies: { expandLongNote: {
where: 'device', where: 'device',
default: 5, default: false,
},
followingFeed: {
where: 'device',
default: defaultFollowingFeedState as Partial<FollowingFeedState>,
},
like: {
where: 'device',
default: null as string | null,
},
noteDesign: {
where: 'device',
default: 'sharkey' as 'sharkey' | 'misskey',
}, },
notificationClickable: { notificationClickable: {
where: 'device', where: 'device',
default: false, default: false,
}, },
cornerRadius: { numberOfReplies: {
where: 'device', 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', where: 'device',
default: true, default: true,
}, },