blob: dca38a0cf824b40a20602e34bf56d183b525d2a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import type { GenericPage } from '@jet-app/app-store/api/models';
import { type Writable, writable, type Readable } from 'svelte/store';
interface Page {
page: GenericPage;
pageDetail?: string;
}
const modalPageStore: Writable<Page | undefined> = (() => {
// prevent global store on the server
if (typeof window === 'undefined') {
return {
subscribe: () => {
return () => {};
},
set: () => {},
update: () => {},
} as unknown as Writable<Page | undefined>;
}
return writable();
})();
interface ModalPageStore extends Readable<Page | undefined> {
setPage: (page: Page) => void;
clearPage: () => void;
}
export const getModalPageStore = (): ModalPageStore => {
return {
subscribe: modalPageStore.subscribe,
setPage: (page) => modalPageStore.set(page),
clearPage: () => modalPageStore.set(undefined),
};
};
|