diff --git a/web/src/lib/utils/tunables.ts b/web/src/lib/utils/tunables.ts index 3e2ed4e5c3..ee9f1d31d8 100644 --- a/web/src/lib/utils/tunables.ts +++ b/web/src/lib/utils/tunables.ts @@ -1,3 +1,4 @@ +import { browser } from '$app/environment'; function getBoolean(string: string | null, fallback: boolean) { if (string === null) { return fallback; @@ -10,18 +11,25 @@ function getNumber(string: string | null, fallback: number) { } return Number.parseInt(string); } + +const storage = browser + ? localStorage + : { + getItem: () => null, + }; + export const TUNABLES = { LAYOUT: { - WASM: getBoolean(localStorage.getItem('LAYOUT.WASM'), false), + WASM: getBoolean(storage.getItem('LAYOUT.WASM'), false), }, TIMELINE: { - INTERSECTION_EXPAND_TOP: getNumber(localStorage.getItem('TIMELINE_INTERSECTION_EXPAND_TOP'), 500), - INTERSECTION_EXPAND_BOTTOM: getNumber(localStorage.getItem('TIMELINE_INTERSECTION_EXPAND_BOTTOM'), 500), + INTERSECTION_EXPAND_TOP: getNumber(storage.getItem('TIMELINE_INTERSECTION_EXPAND_TOP'), 500), + INTERSECTION_EXPAND_BOTTOM: getNumber(storage.getItem('TIMELINE_INTERSECTION_EXPAND_BOTTOM'), 500), }, ASSET_GRID: { - NAVIGATE_ON_ASSET_IN_VIEW: getBoolean(localStorage.getItem('ASSET_GRID.NAVIGATE_ON_ASSET_IN_VIEW'), false), + NAVIGATE_ON_ASSET_IN_VIEW: getBoolean(storage.getItem('ASSET_GRID.NAVIGATE_ON_ASSET_IN_VIEW'), false), }, IMAGE_THUMBNAIL: { - THUMBHASH_FADE_DURATION: getNumber(localStorage.getItem('THUMBHASH_FADE_DURATION'), 150), + THUMBHASH_FADE_DURATION: getNumber(storage.getItem('THUMBHASH_FADE_DURATION'), 150), }, };