Skip to content

Commit 09a95f3

Browse files
committed
show keywords screen validation error in stepper
1 parent baddf96 commit 09a95f3

3 files changed

Lines changed: 23 additions & 8 deletions

File tree

src/components/Keyword.vue

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
<script lang="ts">
4444
import { computed, defineComponent } from 'vue'
4545
import { getMyErrors } from 'src/store/validator'
46-
import { useErrors } from 'src/store/errors'
4746
4847
export default defineComponent({
4948
name: 'KeywordCard',
@@ -62,12 +61,8 @@ export default defineComponent({
6261
}
6362
},
6463
setup (props) {
65-
const { errors } = useErrors()
6664
return {
67-
keywordError: computed(() => {
68-
console.log(errors.value)
69-
return getMyErrors(`/keywords/${props.index}`)
70-
})
65+
keywordError: computed(() => getMyErrors(`/keywords/${props.index}`))
7166
}
7267
},
7368
emits: ['moveDown', 'moveUp', 'removePressed', 'update']

src/components/Stepper.vue

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,14 @@
8080
/>
8181

8282
<q-step
83-
color="primary"
83+
error-color="negative"
84+
error-icon="warning"
8485
icon=""
8586
name="keywords"
8687
title="Keywords"
88+
v-bind:active-icon="isValidScreenKeywords.hasError ? 'warning' : 'edit'"
89+
v-bind:color="isValidScreenKeywords.hasError ? 'negative' : 'primary'"
90+
v-bind:error="isValidScreenKeywords.hasError"
8791
v-bind:order="6"
8892
v-if="showAdvanced"
8993
v-on:click="setStepName('keywords')"
@@ -133,14 +137,16 @@ import { computed } from 'vue'
133137
import { useCff } from 'src/store/cff'
134138
import { authorsErrors } from 'src/authors-errors'
135139
import { relatedResourcesErrors } from 'src/related-resources-errors'
140+
import { keywordsErrors } from 'src/keywords-errors'
136141
137142
export default {
138143
setup () {
139144
const { showAdvanced, stepName, setStepName } = useApp()
140-
const { authors } = useCff()
145+
const { authors, keywords } = useCff()
141146
return {
142147
isValidScreenAuthors: computed(() => authorsErrors(authors.value)),
143148
isValidScreenStart: computed(() => getMyErrors('', ['message', 'title'])),
149+
isValidScreenKeywords: computed(() => keywordsErrors(keywords.value)),
144150
isValidScreenVersionSpecific: computed(() => getMyErrors('/date-released')),
145151
isValidScreenRelatedResources: computed(relatedResourcesErrors),
146152
setStepName,

src/keywords-errors.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { KeywordsType } from 'src/types'
2+
import { getMyErrors } from 'src/store/validator'
3+
4+
export const keywordsErrors = (keywords: KeywordsType) => {
5+
const myErrors = [
6+
getMyErrors('/keywords')
7+
]
8+
const myChildrenErrors = keywords?.map((_, index) => getMyErrors(`/keywords/${index}`))
9+
const errors = myChildrenErrors === undefined ? myErrors : [...myErrors, ...myChildrenErrors]
10+
return {
11+
hasError: errors.some(result => result.hasError),
12+
messages: errors.map(result => result.messages.join(', '))
13+
}
14+
}

0 commit comments

Comments
 (0)