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 :keywords="['corner', 'radius']">
<MkPreferenceContainer k="cornerRadius">
<MkRadios v-model="cornerRadius">
<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="misskey"><i class="sk-icons sk-misskey sk-icons-lg" style="top: 2px;position: relative;"></i> Misskey</option>
</MkRadios>
</MkPreferenceContainer>
<MkRadios v-model="cornerRadius">
<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="misskey"><i class="sk-icons sk-misskey sk-icons-lg" style="top: 2px;position: relative;"></i> Misskey</option>
</MkRadios>
</SearchMarker>
<SearchMarker :keywords="['warn', 'missing', 'alt', 'text']">
@ -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,

View file

@ -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();

View file

@ -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<FollowingFeedState>,
},
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<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;

View file

@ -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<FollowingFeedState>,
},
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<FollowingFeedState>,
},
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,
},