From 9e4fdd6f38853d8a4a959901ab7902569de75484 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Sat, 21 Dec 2019 08:08:54 +0100 Subject: viewer: Implemented the "example" project in devServer Display loader and error messages (not translated yet) Created a "GalleryStore" to fetch the JSon data from the gallery (currently from example) --- viewer/src/store/galleryStore.ts | 21 +++++++++++++++++++++ viewer/src/store/index.ts | 27 +++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 viewer/src/store/galleryStore.ts create mode 100644 viewer/src/store/index.ts (limited to 'viewer/src/store') diff --git a/viewer/src/store/galleryStore.ts b/viewer/src/store/galleryStore.ts new file mode 100644 index 0000000..63e5109 --- /dev/null +++ b/viewer/src/store/galleryStore.ts @@ -0,0 +1,21 @@ +import { createModule, mutation, action } from "vuex-class-component"; + +const VuexModule = createModule({ + namespaced: "galleryStore", + strict: true +}) + +export default class GalleryStore extends VuexModule { + + galleryItems: Gallery.Item[] = []; + + @mutation setGalleryItems(galleryItems: Gallery.Item[]) { + this.galleryItems = galleryItems; + } + + @action async fetchGalleryItems(url: string) { + fetch(url) + .then(response => response.json()) + .then(this.setGalleryItems); + } +} \ No newline at end of file diff --git a/viewer/src/store/index.ts b/viewer/src/store/index.ts new file mode 100644 index 0000000..cadd8e3 --- /dev/null +++ b/viewer/src/store/index.ts @@ -0,0 +1,27 @@ +import Vue from 'vue' +import Vuex from 'vuex' +import { extractVuexModule } from "vuex-class-component"; +import { createProxy } from "vuex-class-component"; +import UIStore from '@/store/uiStore'; +import GalleryStore from '@/store/galleryStore'; + +Vue.use(Vuex) + +const store = new Vuex.Store({ + modules: { + ...extractVuexModule(UIStore), + ...extractVuexModule(GalleryStore) + } +}); + +Vue.use((vue) => vue.prototype.$uiStore = createProxy(store, UIStore)); +Vue.use((vue) => vue.prototype.$galleryStore = createProxy(store, GalleryStore)); + +declare module 'vue/types/vue' { + interface Vue { + $uiStore: UIStore, + $galleryStore: GalleryStore + } +} + +export default store; -- cgit v1.2.3