Skip to content

Commit baddf96

Browse files
committed
implement validation for keywords screen
1 parent 7aa8178 commit baddf96

2 files changed

Lines changed: 27 additions & 7 deletions

File tree

src/components/Keyword.vue

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
outlined
88
placeholder="Type a keyword"
99
v-bind:model-value="keyword"
10-
v-bind:error="FIXME.hasError"
11-
v-bind:error-message="FIXME.messages.join(', ')"
10+
v-bind:error="keywordError.hasError"
11+
v-bind:error-message="keywordError.messages.join(', ')"
1212
v-on:update:modelValue="$emit('update', $event)"
1313
/>
1414
</div>
@@ -41,7 +41,9 @@
4141
</template>
4242

4343
<script lang="ts">
44-
import { defineComponent } from 'vue'
44+
import { computed, defineComponent } from 'vue'
45+
import { getMyErrors } from 'src/store/validator'
46+
import { useErrors } from 'src/store/errors'
4547
4648
export default defineComponent({
4749
name: 'KeywordCard',
@@ -59,9 +61,13 @@ export default defineComponent({
5961
default: 0
6062
}
6163
},
62-
setup () {
64+
setup (props) {
65+
const { errors } = useErrors()
6366
return {
64-
FIXME: { hasError: false, messages: [] }
67+
keywordError: computed(() => {
68+
console.log(errors.value)
69+
return getMyErrors(`/keywords/${props.index}`)
70+
})
6571
}
6672
},
6773
emits: ['moveDown', 'moveUp', 'removePressed', 'update']

src/components/ScreenKeywords.vue

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,18 @@
4141
</q-btn>
4242
</div>
4343

44+
<q-banner
45+
v-if="keywordsErrors.hasError"
46+
class="bg-warning text-negative"
47+
>
48+
<div
49+
v-bind:key="index"
50+
v-for="(screenMessage, index) in keywordsErrors.messages"
51+
>
52+
{{ screenMessage }}
53+
</div>
54+
</q-banner>
55+
4456
<div id="form-button-bar">
4557
<StepperActions />
4658
</div>
@@ -51,10 +63,11 @@
5163
import Stepper from 'components/Stepper.vue'
5264
import StepperActions from 'components/StepperActions.vue'
5365
import Keyword from 'components/Keyword.vue'
54-
import { defineComponent, nextTick } from 'vue'
66+
import { computed, defineComponent, nextTick } from 'vue'
5567
import { moveDown, moveUp } from '../updown'
5668
import { useCff } from '../store/cff'
5769
import { scrollToBottom } from '../scroll-to-bottom'
70+
import { getMyErrors } from 'src/store/validator'
5871
5972
export default defineComponent({
6073
name: 'ScreenKeywords',
@@ -102,7 +115,8 @@ export default defineComponent({
102115
moveUp,
103116
removeKeyword,
104117
setKeyword,
105-
setKeywords
118+
setKeywords,
119+
keywordsErrors: computed(() => getMyErrors('/keywords'))
106120
}
107121
}
108122
})

0 commit comments

Comments
 (0)