diff options
Diffstat (limited to 'src/stores/modalPage.ts')
| -rw-r--r-- | src/stores/modalPage.ts | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/stores/modalPage.ts b/src/stores/modalPage.ts new file mode 100644 index 0000000..dca38a0 --- /dev/null +++ b/src/stores/modalPage.ts @@ -0,0 +1,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), + }; +}; |
