@greatapps/common 1.1.730 → 1.1.733
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/store/useDesktopSidebarStore.mjs +5 -4
- package/dist/store/useDesktopSidebarStore.mjs.map +1 -1
- package/dist/store/useMdSidebarStore.mjs +5 -7
- package/dist/store/useMdSidebarStore.mjs.map +1 -1
- package/dist/utils/browser/safe-storage.mjs +20 -0
- package/dist/utils/browser/safe-storage.mjs.map +1 -0
- package/package.json +1 -1
- package/src/store/useDesktopSidebarStore.ts +5 -4
- package/src/store/useMdSidebarStore.ts +5 -7
- package/src/utils/browser/safe-storage.ts +16 -0
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
import { create } from "zustand";
|
|
2
2
|
import { useEffect } from "react";
|
|
3
|
+
import { readStorage, writeStorage } from "../utils/browser/safe-storage";
|
|
3
4
|
const STORAGE_KEY = "desktop-sidebar-expanded";
|
|
4
5
|
const useDesktopSidebarStore = create((set) => ({
|
|
5
6
|
isExpanded: true,
|
|
6
7
|
_hydrated: false,
|
|
7
8
|
toggle: () => set((state) => {
|
|
8
9
|
const next = !state.isExpanded;
|
|
9
|
-
|
|
10
|
+
writeStorage(STORAGE_KEY, String(next));
|
|
10
11
|
return { isExpanded: next };
|
|
11
12
|
}),
|
|
12
13
|
expand: () => {
|
|
13
|
-
|
|
14
|
+
writeStorage(STORAGE_KEY, "true");
|
|
14
15
|
return set({ isExpanded: true });
|
|
15
16
|
},
|
|
16
17
|
collapse: () => {
|
|
17
|
-
|
|
18
|
+
writeStorage(STORAGE_KEY, "false");
|
|
18
19
|
return set({ isExpanded: false });
|
|
19
20
|
},
|
|
20
21
|
_hydrate: () => {
|
|
21
|
-
const stored =
|
|
22
|
+
const stored = readStorage(STORAGE_KEY);
|
|
22
23
|
const value = stored === null ? true : stored === "true";
|
|
23
24
|
set({ isExpanded: value, _hydrated: true });
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/store/useDesktopSidebarStore.ts"],"sourcesContent":["import { create } from \"zustand\";\nimport { useEffect } from \"react\";\n\nconst STORAGE_KEY = \"desktop-sidebar-expanded\";\n\ntype DesktopSidebarStore = {\n isExpanded: boolean;\n _hydrated: boolean;\n toggle: () => void;\n expand: () => void;\n collapse: () => void;\n _hydrate: () => void;\n};\n\nexport const useDesktopSidebarStore = create<DesktopSidebarStore>((set) => ({\n isExpanded: true,\n _hydrated: false,\n toggle: () => set((state) => {\n const next = !state.isExpanded;\n
|
|
1
|
+
{"version":3,"sources":["../../src/store/useDesktopSidebarStore.ts"],"sourcesContent":["import { create } from \"zustand\";\nimport { useEffect } from \"react\";\nimport { readStorage, writeStorage } from \"../utils/browser/safe-storage\";\n\nconst STORAGE_KEY = \"desktop-sidebar-expanded\";\n\ntype DesktopSidebarStore = {\n isExpanded: boolean;\n _hydrated: boolean;\n toggle: () => void;\n expand: () => void;\n collapse: () => void;\n _hydrate: () => void;\n};\n\nexport const useDesktopSidebarStore = create<DesktopSidebarStore>((set) => ({\n isExpanded: true,\n _hydrated: false,\n toggle: () => set((state) => {\n const next = !state.isExpanded;\n writeStorage(STORAGE_KEY, String(next));\n return { isExpanded: next };\n }),\n expand: () => {\n writeStorage(STORAGE_KEY, \"true\");\n return set({ isExpanded: true });\n },\n collapse: () => {\n writeStorage(STORAGE_KEY, \"false\");\n return set({ isExpanded: false });\n },\n _hydrate: () => {\n const stored = readStorage(STORAGE_KEY);\n const value = stored === null ? true : stored === \"true\";\n set({ isExpanded: value, _hydrated: true });\n },\n}));\n\nexport function useDesktopSidebarHydration() {\n const hydrate = useDesktopSidebarStore((s) => s._hydrate);\n const hydrated = useDesktopSidebarStore((s) => s._hydrated);\n\n useEffect(() => {\n if (!hydrated) {\n hydrate();\n }\n }, [hydrate, hydrated]);\n}\n"],"mappings":"AAAA,SAAS,cAAc;AACvB,SAAS,iBAAiB;AAC1B,SAAS,aAAa,oBAAoB;AAE1C,MAAM,cAAc;AAWb,MAAM,yBAAyB,OAA4B,CAAC,SAAS;AAAA,EACxE,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ,MAAM,IAAI,CAAC,UAAU;AACzB,UAAM,OAAO,CAAC,MAAM;AACpB,iBAAa,aAAa,OAAO,IAAI,CAAC;AACtC,WAAO,EAAE,YAAY,KAAK;AAAA,EAC9B,CAAC;AAAA,EACD,QAAQ,MAAM;AACV,iBAAa,aAAa,MAAM;AAChC,WAAO,IAAI,EAAE,YAAY,KAAK,CAAC;AAAA,EACnC;AAAA,EACA,UAAU,MAAM;AACZ,iBAAa,aAAa,OAAO;AACjC,WAAO,IAAI,EAAE,YAAY,MAAM,CAAC;AAAA,EACpC;AAAA,EACA,UAAU,MAAM;AACZ,UAAM,SAAS,YAAY,WAAW;AACtC,UAAM,QAAQ,WAAW,OAAO,OAAO,WAAW;AAClD,QAAI,EAAE,YAAY,OAAO,WAAW,KAAK,CAAC;AAAA,EAC9C;AACJ,EAAE;AAEK,SAAS,6BAA6B;AACzC,QAAM,UAAU,uBAAuB,CAAC,MAAM,EAAE,QAAQ;AACxD,QAAM,WAAW,uBAAuB,CAAC,MAAM,EAAE,SAAS;AAE1D,YAAU,MAAM;AACZ,QAAI,CAAC,UAAU;AACX,cAAQ;AAAA,IACZ;AAAA,EACJ,GAAG,CAAC,SAAS,QAAQ,CAAC;AAC1B;","names":[]}
|
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
import { create } from "zustand";
|
|
2
|
+
import { readStorage, writeStorage } from "../utils/browser/safe-storage";
|
|
2
3
|
const STORAGE_KEY = "md-sidebar-expanded";
|
|
3
4
|
function getInitialState() {
|
|
4
|
-
|
|
5
|
-
const stored = localStorage.getItem(STORAGE_KEY);
|
|
6
|
-
if (stored === null) return false;
|
|
7
|
-
return stored === "true";
|
|
5
|
+
return readStorage(STORAGE_KEY) === "true";
|
|
8
6
|
}
|
|
9
7
|
const useMdSidebarStore = create((set) => ({
|
|
10
8
|
isExpanded: getInitialState(),
|
|
11
9
|
toggle: () => set((state) => {
|
|
12
10
|
const next = !state.isExpanded;
|
|
13
|
-
|
|
11
|
+
writeStorage(STORAGE_KEY, String(next));
|
|
14
12
|
return { isExpanded: next };
|
|
15
13
|
}),
|
|
16
14
|
expand: () => {
|
|
17
|
-
|
|
15
|
+
writeStorage(STORAGE_KEY, "true");
|
|
18
16
|
return set({ isExpanded: true });
|
|
19
17
|
},
|
|
20
18
|
collapse: () => {
|
|
21
|
-
|
|
19
|
+
writeStorage(STORAGE_KEY, "false");
|
|
22
20
|
return set({ isExpanded: false });
|
|
23
21
|
}
|
|
24
22
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/store/useMdSidebarStore.ts"],"sourcesContent":["import { create } from \"zustand\";\n\nconst STORAGE_KEY = \"md-sidebar-expanded\";\n\nfunction getInitialState(): boolean {\n
|
|
1
|
+
{"version":3,"sources":["../../src/store/useMdSidebarStore.ts"],"sourcesContent":["import { create } from \"zustand\";\nimport { readStorage, writeStorage } from \"../utils/browser/safe-storage\";\n\nconst STORAGE_KEY = \"md-sidebar-expanded\";\n\nfunction getInitialState(): boolean {\n return readStorage(STORAGE_KEY) === \"true\";\n}\n\ntype MdSidebarStore = {\n isExpanded: boolean;\n toggle: () => void;\n expand: () => void;\n collapse: () => void;\n};\n\nexport const useMdSidebarStore = create<MdSidebarStore>((set) => ({\n isExpanded: getInitialState(),\n toggle: () => set((state) => {\n const next = !state.isExpanded;\n writeStorage(STORAGE_KEY, String(next));\n return { isExpanded: next };\n }),\n expand: () => {\n writeStorage(STORAGE_KEY, \"true\");\n return set({ isExpanded: true });\n },\n collapse: () => {\n writeStorage(STORAGE_KEY, \"false\");\n return set({ isExpanded: false });\n },\n}));\n"],"mappings":"AAAA,SAAS,cAAc;AACvB,SAAS,aAAa,oBAAoB;AAE1C,MAAM,cAAc;AAEpB,SAAS,kBAA2B;AAChC,SAAO,YAAY,WAAW,MAAM;AACxC;AASO,MAAM,oBAAoB,OAAuB,CAAC,SAAS;AAAA,EAC9D,YAAY,gBAAgB;AAAA,EAC5B,QAAQ,MAAM,IAAI,CAAC,UAAU;AACzB,UAAM,OAAO,CAAC,MAAM;AACpB,iBAAa,aAAa,OAAO,IAAI,CAAC;AACtC,WAAO,EAAE,YAAY,KAAK;AAAA,EAC9B,CAAC;AAAA,EACD,QAAQ,MAAM;AACV,iBAAa,aAAa,MAAM;AAChC,WAAO,IAAI,EAAE,YAAY,KAAK,CAAC;AAAA,EACnC;AAAA,EACA,UAAU,MAAM;AACZ,iBAAa,aAAa,OAAO;AACjC,WAAO,IAAI,EAAE,YAAY,MAAM,CAAC;AAAA,EACpC;AACJ,EAAE;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
function readStorage(key) {
|
|
2
|
+
if (typeof window === "undefined") return null;
|
|
3
|
+
try {
|
|
4
|
+
return window.localStorage?.getItem(key) ?? null;
|
|
5
|
+
} catch {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
function writeStorage(key, value) {
|
|
10
|
+
if (typeof window === "undefined") return;
|
|
11
|
+
try {
|
|
12
|
+
window.localStorage?.setItem(key, value);
|
|
13
|
+
} catch {
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
readStorage,
|
|
18
|
+
writeStorage
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=safe-storage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/browser/safe-storage.ts"],"sourcesContent":["export function readStorage(key: string): string | null {\n if (typeof window === 'undefined') return null;\n try {\n return window.localStorage?.getItem(key) ?? null;\n } catch {\n return null;\n }\n}\n\nexport function writeStorage(key: string, value: string): void {\n if (typeof window === 'undefined') return;\n try {\n window.localStorage?.setItem(key, value);\n } catch {\n }\n}\n"],"mappings":"AAAO,SAAS,YAAY,KAA4B;AACtD,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,MAAI;AACF,WAAO,OAAO,cAAc,QAAQ,GAAG,KAAK;AAAA,EAC9C,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,aAAa,KAAa,OAAqB;AAC7D,MAAI,OAAO,WAAW,YAAa;AACnC,MAAI;AACF,WAAO,cAAc,QAAQ,KAAK,KAAK;AAAA,EACzC,QAAQ;AAAA,EACR;AACF;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { create } from "zustand";
|
|
2
2
|
import { useEffect } from "react";
|
|
3
|
+
import { readStorage, writeStorage } from "../utils/browser/safe-storage";
|
|
3
4
|
|
|
4
5
|
const STORAGE_KEY = "desktop-sidebar-expanded";
|
|
5
6
|
|
|
@@ -17,19 +18,19 @@ export const useDesktopSidebarStore = create<DesktopSidebarStore>((set) => ({
|
|
|
17
18
|
_hydrated: false,
|
|
18
19
|
toggle: () => set((state) => {
|
|
19
20
|
const next = !state.isExpanded;
|
|
20
|
-
|
|
21
|
+
writeStorage(STORAGE_KEY, String(next));
|
|
21
22
|
return { isExpanded: next };
|
|
22
23
|
}),
|
|
23
24
|
expand: () => {
|
|
24
|
-
|
|
25
|
+
writeStorage(STORAGE_KEY, "true");
|
|
25
26
|
return set({ isExpanded: true });
|
|
26
27
|
},
|
|
27
28
|
collapse: () => {
|
|
28
|
-
|
|
29
|
+
writeStorage(STORAGE_KEY, "false");
|
|
29
30
|
return set({ isExpanded: false });
|
|
30
31
|
},
|
|
31
32
|
_hydrate: () => {
|
|
32
|
-
const stored =
|
|
33
|
+
const stored = readStorage(STORAGE_KEY);
|
|
33
34
|
const value = stored === null ? true : stored === "true";
|
|
34
35
|
set({ isExpanded: value, _hydrated: true });
|
|
35
36
|
},
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { create } from "zustand";
|
|
2
|
+
import { readStorage, writeStorage } from "../utils/browser/safe-storage";
|
|
2
3
|
|
|
3
4
|
const STORAGE_KEY = "md-sidebar-expanded";
|
|
4
5
|
|
|
5
6
|
function getInitialState(): boolean {
|
|
6
|
-
|
|
7
|
-
const stored = localStorage.getItem(STORAGE_KEY);
|
|
8
|
-
if (stored === null) return false;
|
|
9
|
-
return stored === "true";
|
|
7
|
+
return readStorage(STORAGE_KEY) === "true";
|
|
10
8
|
}
|
|
11
9
|
|
|
12
10
|
type MdSidebarStore = {
|
|
@@ -20,15 +18,15 @@ export const useMdSidebarStore = create<MdSidebarStore>((set) => ({
|
|
|
20
18
|
isExpanded: getInitialState(),
|
|
21
19
|
toggle: () => set((state) => {
|
|
22
20
|
const next = !state.isExpanded;
|
|
23
|
-
|
|
21
|
+
writeStorage(STORAGE_KEY, String(next));
|
|
24
22
|
return { isExpanded: next };
|
|
25
23
|
}),
|
|
26
24
|
expand: () => {
|
|
27
|
-
|
|
25
|
+
writeStorage(STORAGE_KEY, "true");
|
|
28
26
|
return set({ isExpanded: true });
|
|
29
27
|
},
|
|
30
28
|
collapse: () => {
|
|
31
|
-
|
|
29
|
+
writeStorage(STORAGE_KEY, "false");
|
|
32
30
|
return set({ isExpanded: false });
|
|
33
31
|
},
|
|
34
32
|
}));
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function readStorage(key: string): string | null {
|
|
2
|
+
if (typeof window === 'undefined') return null;
|
|
3
|
+
try {
|
|
4
|
+
return window.localStorage?.getItem(key) ?? null;
|
|
5
|
+
} catch {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function writeStorage(key: string, value: string): void {
|
|
11
|
+
if (typeof window === 'undefined') return;
|
|
12
|
+
try {
|
|
13
|
+
window.localStorage?.setItem(key, value);
|
|
14
|
+
} catch {
|
|
15
|
+
}
|
|
16
|
+
}
|