Remember preview panel open state

This commit is contained in:
Misode
2022-10-15 07:03:51 +02:00
parent f309eef176
commit 3e8bc21a1e
2 changed files with 17 additions and 2 deletions
+15
View File
@@ -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)
+2 -2
View File
@@ -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')