aboutsummaryrefslogtreecommitdiffstats
path: root/stores
diff options
context:
space:
mode:
Diffstat (limited to 'stores')
-rw-r--r--stores/export.ts31
-rw-r--r--stores/session.ts12
2 files changed, 37 insertions, 6 deletions
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;