mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
44 lines
1021 B
TypeScript
44 lines
1021 B
TypeScript
import type { SvelteComponent } from 'svelte';
|
|
import { writable } from 'svelte/store';
|
|
|
|
export type WizardStore = {
|
|
show: boolean;
|
|
component?: typeof SvelteComponent;
|
|
interceptor?: () => Promise<void>;
|
|
};
|
|
|
|
function createWizardStore() {
|
|
const { subscribe, update } = writable<WizardStore>({
|
|
show: false,
|
|
component: null,
|
|
interceptor: null
|
|
});
|
|
|
|
return {
|
|
subscribe,
|
|
start: (component: typeof SvelteComponent) =>
|
|
update((n) => {
|
|
n.show = true;
|
|
n.component = component;
|
|
|
|
return n;
|
|
}),
|
|
setInterceptor: (callback: WizardStore['interceptor']) => {
|
|
update((n) => {
|
|
n.interceptor = callback;
|
|
|
|
return n;
|
|
});
|
|
},
|
|
hide: () =>
|
|
update((n) => {
|
|
n.show = false;
|
|
n.component = null;
|
|
|
|
return n;
|
|
})
|
|
};
|
|
}
|
|
|
|
export const wizard = createWizardStore();
|