diff options
| author | Leonardo Bishop <me@leonardobishop.com> | 2024-03-12 23:18:23 +0000 |
|---|---|---|
| committer | Leonardo Bishop <me@leonardobishop.com> | 2024-03-12 23:18:23 +0000 |
| commit | a072c91cc0dc26e417c51f666e8547e08ef40942 (patch) | |
| tree | 1a7296d2acb9038b1928cc1f0f5a08aa6b92b222 /stores/loader.ts | |
| parent | a4052ffee8bc7c6c8a69eba5120b5c6c2d951b0f (diff) | |
Add import from file system
Diffstat (limited to 'stores/loader.ts')
| -rw-r--r-- | stores/loader.ts | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/stores/loader.ts b/stores/loader.ts new file mode 100644 index 0000000..fe3742c --- /dev/null +++ b/stores/loader.ts @@ -0,0 +1,55 @@ +import { defineStore } from 'pinia' +import type { EditorCategory, EditorItem } from './session'; + +export type FileSystemLoaderStatus = 'inactive' | 'pending' | 'loaded' | 'invalid' | 'valid'; + +export const useLoaderStore = defineStore('loader', { + state: () => ({ + fileSystem: { + status: 'inactive' as FileSystemLoaderStatus, + path: '' as string, + quests: [] as EditorQuest[], + categories: [] as EditorCategory[], + items: [] as EditorItem[], + } + }), + getters: { + getFileSystemLoaderStatus: (state) => () => { + return state.fileSystem.status; + }, + getPath: (state) => () => { + return state.fileSystem.path; + }, + getQuests: (state) => () => { + return state.fileSystem.quests; + }, + getCategories: (state) => () => { + return state.fileSystem.categories; + }, + getItems: (state) => () => { + return state.fileSystem.items; + }, + }, + actions: { + setFileSystemLoaderStatus(status: FileSystemLoaderStatus) { + this.fileSystem.status = status; + if (status === 'inactive' || status === 'pending') { + this.fileSystem.quests = []; + this.fileSystem.categories = []; + this.fileSystem.items = []; + } + }, + setPath(path: string) { + this.fileSystem.path = path; + }, + setQuests(quests: EditorQuest[]) { + this.fileSystem.quests = quests; + }, + setCategories(categories: EditorCategory[]) { + this.fileSystem.categories = categories; + }, + setItems(items: EditorItem[]) { + this.fileSystem.items = items; + } + } +}); |
