aboutsummaryrefslogtreecommitdiff
path: root/viewer/src/components
diff options
context:
space:
mode:
authorZero~Informatique2020-02-27 17:23:32 +0100
committerZero~Informatique2020-02-27 17:53:41 +0100
commit7c2a2ff46469d5e8f44fb3ec7feae5f798e0baf8 (patch)
tree9b4c12bd263013687f8cec3f0002122bd458aa49 /viewer/src/components
parentd862c99d6ee74f25261c00fcfee3a6e551501f16 (diff)
downloadldgallery-7c2a2ff46469d5e8f44fb3ec7feae5f798e0baf8.tar.gz
viewer: architectural fixes and improvements
Make use of VueX's strict mode (which is different from vuex-class-component strict mode) Fixed issues and bad-practices with search filter tags mutations Correctly implement the new index.json format
Diffstat (limited to 'viewer/src/components')
-rw-r--r--viewer/src/components/LdBreadcrumb.vue2
-rw-r--r--viewer/src/components/LdCommand.vue2
-rw-r--r--viewer/src/components/LdProposition.vue4
-rw-r--r--viewer/src/components/LdTagInput.vue4
4 files changed, 6 insertions, 6 deletions
diff --git a/viewer/src/components/LdBreadcrumb.vue b/viewer/src/components/LdBreadcrumb.vue
index 2ac1216..2b45b71 100644
--- a/viewer/src/components/LdBreadcrumb.vue
+++ b/viewer/src/components/LdBreadcrumb.vue
@@ -53,7 +53,7 @@ import Navigation from "@/services/navigation";
53 53
54@Component 54@Component
55export default class LdBreadcrumb extends Vue { 55export default class LdBreadcrumb extends Vue {
56 @Prop({ required: true }) readonly currentItemPath!: Gallery.Item[]; 56 @Prop({ type: Array, required: true }) readonly currentItemPath!: Gallery.Item[];
57 @Prop(Boolean) readonly searchMode!: boolean; 57 @Prop(Boolean) readonly searchMode!: boolean;
58 @Ref() readonly breadcrumb!: HTMLUListElement; 58 @Ref() readonly breadcrumb!: HTMLUListElement;
59 59
diff --git a/viewer/src/components/LdCommand.vue b/viewer/src/components/LdCommand.vue
index 367e08f..398107e 100644
--- a/viewer/src/components/LdCommand.vue
+++ b/viewer/src/components/LdCommand.vue
@@ -44,7 +44,7 @@ import { RawLocation } from "vue-router";
44 44
45@Component 45@Component
46export default class LdCommand extends Vue { 46export default class LdCommand extends Vue {
47 @Prop({ required: true }) readonly currentItemPath!: Gallery.Item[]; 47 @Prop({ type: Array, required: true }) readonly currentItemPath!: Gallery.Item[];
48 48
49 commandToggleSearchPanelIcon(): string { 49 commandToggleSearchPanelIcon(): string {
50 return this.$uiStore.fullWidth ? "search" : "angle-double-left"; 50 return this.$uiStore.fullWidth ? "search" : "angle-double-left";
diff --git a/viewer/src/components/LdProposition.vue b/viewer/src/components/LdProposition.vue
index 7f6521f..375c482 100644
--- a/viewer/src/components/LdProposition.vue
+++ b/viewer/src/components/LdProposition.vue
@@ -49,14 +49,14 @@
49</template> 49</template>
50 50
51<script lang="ts"> 51<script lang="ts">
52import { Component, Vue, Model, Prop } from "vue-property-decorator"; 52import { Component, Vue, Prop, PropSync } from "vue-property-decorator";
53import { Operation } from "@/@types/Operation"; 53import { Operation } from "@/@types/Operation";
54 54
55@Component 55@Component
56export default class LdProposition extends Vue { 56export default class LdProposition extends Vue {
57 @Prop({ type: Array, required: true }) readonly currentTags!: string[]; 57 @Prop({ type: Array, required: true }) readonly currentTags!: string[];
58 @Prop({ required: true }) readonly tagsIndex!: Tag.Index; 58 @Prop({ required: true }) readonly tagsIndex!: Tag.Index;
59 @Model() model!: Tag.Search[]; 59 @PropSync("searchFilters", { type: Array, required: true }) model!: Tag.Search[];
60 60
61 get Operation() { 61 get Operation() {
62 return Operation; 62 return Operation;
diff --git a/viewer/src/components/LdTagInput.vue b/viewer/src/components/LdTagInput.vue
index ad0845e..b2a2c58 100644
--- a/viewer/src/components/LdTagInput.vue
+++ b/viewer/src/components/LdTagInput.vue
@@ -38,7 +38,7 @@
38</template> 38</template>
39 39
40<script lang="ts"> 40<script lang="ts">
41import { Component, Vue, Model, Prop } from "vue-property-decorator"; 41import { Component, Vue, Prop, PropSync } from "vue-property-decorator";
42import { Operation } from "@/@types/Operation"; 42import { Operation } from "@/@types/Operation";
43import Navigation from "@/services/navigation"; 43import Navigation from "@/services/navigation";
44import IndexFactory from "@/services/indexfactory"; 44import IndexFactory from "@/services/indexfactory";
@@ -46,7 +46,7 @@ import IndexFactory from "@/services/indexfactory";
46@Component 46@Component
47export default class LdTagInput extends Vue { 47export default class LdTagInput extends Vue {
48 @Prop({ required: true }) readonly tagsIndex!: Tag.Index; 48 @Prop({ required: true }) readonly tagsIndex!: Tag.Index;
49 @Model() model!: Tag.Search[]; 49 @PropSync("searchFilters", { type: Array, required: true }) model!: Tag.Search[];
50 50
51 filteredTags: Tag.Search[] = []; 51 filteredTags: Tag.Search[] = [];
52 52