aboutsummaryrefslogtreecommitdiffstats
path: root/stores/export.ts
diff options
context:
space:
mode:
authorLeonardo Bishop <me@leonardobishop.com>2024-03-13 19:33:33 +0000
committerLeonardo Bishop <me@leonardobishop.com>2024-03-13 19:33:33 +0000
commitbd26b2800e2675613c6990673ad0b7b5175aa841 (patch)
tree26d1a89d9ed60ad73a82fbe3371d8c58578702f5 /stores/export.ts
parent825d2cadee4ddf34d0dde8c278fc8e8a99e95b95 (diff)
Add zip export
Diffstat (limited to 'stores/export.ts')
-rw-r--r--stores/export.ts31
1 files changed, 31 insertions, 0 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;
+ },
+ }
+});