From a5865825dae408509b4129de95c2d8a4a847fbbf Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Wed, 30 Aug 2023 17:42:33 +0800 Subject: [PATCH] Init states again after login to new account --- src/app.jsx | 3 ++- src/utils/states.js | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/app.jsx b/src/app.jsx index 0f491e94..16efbe2d 100644 --- a/src/app.jsx +++ b/src/app.jsx @@ -58,7 +58,7 @@ import { import { getAccessToken } from './utils/auth'; import openCompose from './utils/open-compose'; import showToast from './utils/show-toast'; -import states, { getStatus, saveStatus } from './utils/states'; +import states, { initStates, saveStatus } from './utils/states'; import store from './utils/store'; import { getCurrentAccount } from './utils/store-utils'; import useInterval from './utils/useInterval'; @@ -130,6 +130,7 @@ function App() { initInstance(masto, instanceURL), initAccount(masto, instanceURL, accessToken), ]); + initStates(); initPreferences(masto); setIsLoggedIn(true); diff --git a/src/utils/states.js b/src/utils/states.js index 6b8e281a..dde99563 100644 --- a/src/utils/states.js +++ b/src/utils/states.js @@ -60,6 +60,30 @@ const states = proxy({ export default states; +export function initStates() { + // init all account based states + // all keys that uses store.account.get() should be initialized here + states.notificationsLast = store.account.get('notificationsLast') || null; + states.shortcuts = store.account.get('shortcuts') ?? []; + states.settings.autoRefresh = + store.account.get('settings-autoRefresh') ?? false; + states.settings.shortcutsViewMode = + store.account.get('settings-shortcutsViewMode') ?? null; + states.settings.shortcutsColumnsMode = + store.account.get('settings-shortcutsColumnsMode') ?? false; + states.settings.boostsCarousel = + store.account.get('settings-boostsCarousel') ?? true; + states.settings.contentTranslation = + store.account.get('settings-contentTranslation') ?? true; + states.settings.contentTranslationTargetLanguage = + store.account.get('settings-contentTranslationTargetLanguage') || null; + states.settings.contentTranslationHideLanguages = + store.account.get('settings-contentTranslationHideLanguages') || []; + states.settings.contentTranslationAutoInline = + store.account.get('settings-contentTranslationAutoInline') ?? false; + states.settings.cloakMode = store.account.get('settings-cloakMode') ?? false; +} + subscribeKey(states, 'notificationsLast', (v) => { console.log('CHANGE', v); store.account.set('notificationsLast', states.notificationsLast);