diff options
author | zeroinformatique | 2021-07-03 00:48:53 +0200 |
---|---|---|
committer | GitHub | 2021-07-03 00:48:53 +0200 |
commit | b6605e2c4ee73ac8b994624098344db5e44ac07d (patch) | |
tree | 5ed06cc5ecdabe070f6fdb9bc4f9a8a3b435cbe6 /viewer/src/store/galleryStore.ts | |
parent | 08ac32103fb5f8cca1861267dfd07a7c0d2faf62 (diff) | |
parent | 1f0377c1b4c2959c73fe4e368673f057ef369917 (diff) | |
download | ldgallery-b6605e2c4ee73ac8b994624098344db5e44ac07d.tar.gz |
Merge pull request #302 from ldgallery/oz-types-normalization
viewer: types normalization
Diffstat (limited to 'viewer/src/store/galleryStore.ts')
-rw-r--r-- | viewer/src/store/galleryStore.ts | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/viewer/src/store/galleryStore.ts b/viewer/src/store/galleryStore.ts index 6d64e12..e2adf18 100644 --- a/viewer/src/store/galleryStore.ts +++ b/viewer/src/store/galleryStore.ts | |||
@@ -17,9 +17,11 @@ | |||
17 | -- along with this program. If not, see <https://www.gnu.org/licenses/>. | 17 | -- along with this program. If not, see <https://www.gnu.org/licenses/>. |
18 | */ | 18 | */ |
19 | 19 | ||
20 | import { createModule, mutation, action } from "vuex-class-component"; | 20 | import { Config, Index, Item } from "@/@types/gallery"; |
21 | import { TagCategory, TagIndex, TagSearch } from "@/@types/tag"; | ||
21 | import IndexFactory from "@/services/indexfactory"; | 22 | import IndexFactory from "@/services/indexfactory"; |
22 | import Navigation from "@/services/navigation"; | 23 | import Navigation from "@/services/navigation"; |
24 | import { action, createModule, mutation } from "vuex-class-component"; | ||
23 | 25 | ||
24 | const VuexModule = createModule({ | 26 | const VuexModule = createModule({ |
25 | namespaced: "galleryStore", | 27 | namespaced: "galleryStore", |
@@ -27,28 +29,28 @@ const VuexModule = createModule({ | |||
27 | }); | 29 | }); |
28 | 30 | ||
29 | export default class GalleryStore extends VuexModule { | 31 | export default class GalleryStore extends VuexModule { |
30 | config: Gallery.Config | null = null; | 32 | config: Config | null = null; |
31 | galleryIndex: Gallery.Index | null = null; | 33 | galleryIndex: Index | null = null; |
32 | tagsIndex: Tag.Index = {}; | 34 | tagsIndex: TagIndex = {}; |
33 | tagsCategories: Tag.Category[] = []; | 35 | tagsCategories: TagCategory[] = []; |
34 | currentPath: string | null = null; | 36 | currentPath: string | null = null; |
35 | currentSearch: Tag.Search[] = []; | 37 | currentSearch: TagSearch[] = []; |
36 | 38 | ||
37 | // --- | 39 | // --- |
38 | 40 | ||
39 | @mutation private setConfig(config: Gallery.Config) { | 41 | @mutation private setConfig(config: Config) { |
40 | this.config = config; | 42 | this.config = config; |
41 | } | 43 | } |
42 | 44 | ||
43 | @mutation setGalleryIndex(galleryIndex: Gallery.Index) { | 45 | @mutation setGalleryIndex(galleryIndex: Index) { |
44 | this.galleryIndex = Object.freeze(galleryIndex); | 46 | this.galleryIndex = Object.freeze(galleryIndex); |
45 | } | 47 | } |
46 | 48 | ||
47 | @mutation private setTagsIndex(tagsIndex: Tag.Index) { | 49 | @mutation private setTagsIndex(tagsIndex: TagIndex) { |
48 | this.tagsIndex = Object.freeze(tagsIndex); | 50 | this.tagsIndex = Object.freeze(tagsIndex); |
49 | } | 51 | } |
50 | 52 | ||
51 | @mutation private setTagsCategories(tagsCategories: Tag.Category[]) { | 53 | @mutation private setTagsCategories(tagsCategories: TagCategory[]) { |
52 | this.tagsCategories = tagsCategories; | 54 | this.tagsCategories = tagsCategories; |
53 | } | 55 | } |
54 | 56 | ||
@@ -56,19 +58,19 @@ export default class GalleryStore extends VuexModule { | |||
56 | this.currentPath = currentPath; | 58 | this.currentPath = currentPath; |
57 | } | 59 | } |
58 | 60 | ||
59 | @mutation setCurrentSearch(currentSearch: Tag.Search[]) { | 61 | @mutation setCurrentSearch(currentSearch: TagSearch[]) { |
60 | this.currentSearch = currentSearch; | 62 | this.currentSearch = currentSearch; |
61 | } | 63 | } |
62 | 64 | ||
63 | // --- | 65 | // --- |
64 | 66 | ||
65 | get currentItemPath(): Gallery.Item[] { | 67 | get currentItemPath(): Item[] { |
66 | const root = this.galleryIndex?.tree; | 68 | const root = this.galleryIndex?.tree; |
67 | if (root && this.currentPath) return Navigation.searchCurrentItemPath(root, this.currentPath); | 69 | if (root && this.currentPath) return Navigation.searchCurrentItemPath(root, this.currentPath); |
68 | return []; | 70 | return []; |
69 | } | 71 | } |
70 | 72 | ||
71 | get currentItem(): Gallery.Item | null { | 73 | get currentItem(): Item | null { |
72 | const path = this.currentItemPath; | 74 | const path = this.currentItemPath; |
73 | return path.length > 0 ? path[path.length - 1] : null; | 75 | return path.length > 0 ? path[path.length - 1] : null; |
74 | } | 76 | } |