diff --git a/src/app/Store.ts b/src/app/Store.ts index 975abc2b..1c68cc5d 100644 --- a/src/app/Store.ts +++ b/src/app/Store.ts @@ -13,6 +13,7 @@ export namespace Store { export const ID_SOUNDS_VERSION = 'minecraft_sounds_version' export const ID_PROJECTS = 'misode_projects' export const ID_BACKUPS = 'misode_generator_backups' + export const ID_PREVIEW_PANEL_OPEN = 'misode_preview_panel_open' export const ID_PROJECT_PANEL_OPEN = 'misode_project_panel_open' export const ID_OPEN_PROJECT = 'misode_open_project' export const ID_TREE_VIEW_MODE = 'misode_tree_view_mode' @@ -71,6 +72,12 @@ export namespace Store { return backups[id] } + export function getPreviewPanelOpen(): boolean | undefined { + const open = localStorage.getItem(ID_PREVIEW_PANEL_OPEN) + if (open === null) return undefined + return JSON.parse(open) + } + export function getProjectPanelOpen(): boolean | undefined { const open = localStorage.getItem(ID_PROJECT_PANEL_OPEN) if (open === null) return undefined @@ -131,6 +138,14 @@ export namespace Store { localStorage.setItem(ID_BACKUPS, JSON.stringify(backups)) } + export function setPreviewPanelOpen(open: boolean | undefined) { + if (open === undefined) { + localStorage.removeItem(ID_PREVIEW_PANEL_OPEN) + } else { + localStorage.setItem(ID_PREVIEW_PANEL_OPEN, JSON.stringify(open)) + } + } + export function setProjectPanelOpen(open: boolean | undefined) { if (open === undefined) { localStorage.removeItem(ID_PROJECT_PANEL_OPEN) diff --git a/src/app/pages/Generator.tsx b/src/app/pages/Generator.tsx index 36402a28..94c3847e 100644 --- a/src/app/pages/Generator.tsx +++ b/src/app/pages/Generator.tsx @@ -285,7 +285,7 @@ export function Generator({}: Props) { const [copyActive, copySuccess] = useActiveTimeout() - const [previewShown, setPreviewShown] = useState(false) + const [previewShown, setPreviewShown] = useState(Store.getPreviewPanelOpen() ?? window.innerWidth > 800) const hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18')) if (previewShown && !hasPreview) setPreviewShown(false) let actionsShown = 2 @@ -304,7 +304,7 @@ export function Generator({}: Props) { } } - const [projectShown, setProjectShown] = useState(Store.getProjectPanelOpen() ?? window.innerWidth > 600) + const [projectShown, setProjectShown] = useState(Store.getProjectPanelOpen() ?? window.innerWidth > 1000) const toggleProjectShown = useCallback(() => { if (projectShown) { Analytics.hideProject(gen.id, projects.length, project.files.length, 'menu')