From bd26b2800e2675613c6990673ad0b7b5175aa841 Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Wed, 13 Mar 2024 19:33:33 +0000 Subject: Add zip export --- stores/export.ts | 31 +++++++++++++++++++++++++++++++ stores/session.ts | 12 ++++++------ 2 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 stores/export.ts (limited to 'stores') diff --git a/stores/export.ts b/stores/export.ts new file mode 100644 index 0000000..3f48aa3 --- /dev/null +++ b/stores/export.ts @@ -0,0 +1,31 @@ +import { defineStore } from 'pinia' + +export type ZipLoaderStatus = 'inactive' | 'preparing' | 'compressing' | 'ready' | 'failed'; + +export const useExportStore = defineStore('export', { + state: () => ({ + zip: { + status: 'inactive' as ZipLoaderStatus, + contents: null as Blob | null, + } + }), + getters: { + getZipStatus: (state) => () => { + return state.zip.status; + }, + getZipContents: (state) => () => { + return state.zip.contents; + }, + }, + actions: { + setZipStatus(status: ZipLoaderStatus) { + this.zip.status = status; + if (status === 'inactive' || status === 'preparing') { + this.zip.contents = null; + } + }, + setZipContents(contents: Blob) { + this.zip.contents = contents; + }, + } +}); diff --git a/stores/session.ts b/stores/session.ts index 876b6b0..50bcde7 100644 --- a/stores/session.ts +++ b/stores/session.ts @@ -111,14 +111,14 @@ export const useSessionStore = defineStore('session', { getSessionType: (state) => () => { return state.sessionType }, - getQuests(): EditorQuest[] { - return this.session.quests + getQuests: (state) => () => { + return state.session.quests }, - getCategories(): EditorCategory[] { - return this.session.categories + getCategories: (state) => () => { + return state.session.categories }, - getItems(): EditorItem[] { - return this.session.items + getItems: (state) => () => { + return state.session.items }, getQuestById: (state) => (id: string) => { if (!id) return null; -- cgit v1.2.3-70-g09d2