load from old settings if new settings are not found to smooth transition

This commit is contained in:
Athou
2024-09-10 22:37:50 +02:00
parent 9930bb68b2
commit 6634cfb991

View File

@@ -3,6 +3,7 @@ import { entriesSlice } from "app/entries/slice"
import { redirectSlice } from "app/redirect/slice" import { redirectSlice } from "app/redirect/slice"
import { serverSlice } from "app/server/slice" import { serverSlice } from "app/server/slice"
import { treeSlice } from "app/tree/slice" import { treeSlice } from "app/tree/slice"
import type { LocalSettings } from "app/types"
import { initialLocalSettings, userSlice } from "app/user/slice" import { initialLocalSettings, userSlice } from "app/user/slice"
import { type TypedUseSelectorHook, useDispatch, useSelector } from "react-redux" import { type TypedUseSelectorHook, useDispatch, useSelector } from "react-redux"
@@ -14,11 +15,29 @@ export const reducers = {
user: userSlice.reducer, user: userSlice.reducer,
} }
const loadLocalSettings = (): LocalSettings => {
const json = localStorage.getItem("commafeed-local-settings")
if (json) {
return JSON.parse(json)
}
// load old settings
const viewMode = localStorage.getItem("view-mode")
const sidebarWidth = localStorage.getItem("sidebar-width")
const announcementHash = localStorage.getItem("announcement-hash")
return {
...initialLocalSettings,
viewMode: viewMode ? JSON.parse(viewMode) : initialLocalSettings.viewMode,
sidebarWidth: sidebarWidth ? JSON.parse(sidebarWidth) : initialLocalSettings.sidebarWidth,
announcementHash: announcementHash ? JSON.parse(announcementHash) : initialLocalSettings.announcementHash,
}
}
export const store = configureStore({ export const store = configureStore({
reducer: reducers, reducer: reducers,
preloadedState: { preloadedState: {
user: { user: {
localSettings: JSON.parse(localStorage.getItem("commafeed-local-settings") ?? JSON.stringify(initialLocalSettings)), localSettings: loadLocalSettings(),
}, },
}, },
}) })