Merge pull request #957 from Safelite/CSR-1102-dropdown-question-iss-code-match

CSR-1102 Match code to ISS and test flow.
This commit is contained in:
bmauger 2023-01-27 10:45:45 -05:00 committed by GitHub
commit 3a48da7df8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,5 +1,7 @@
<template> <template>
<div class="dropdown-question" :class="errorMessage || hasError ? 'has-error' : ''"> <div
class="dropdown-question"
:class="(errors && errors.length) || hasError ? 'has-error' : ''">
<label <label
:for="inputId" :for="inputId"
:aria-label="questionText" :aria-label="questionText"
@ -13,7 +15,9 @@
:aria-disabled="isDisabled" :aria-disabled="isDisabled"
:disabled="isDisabled" :disabled="isDisabled"
:aria-required="isRequired" :aria-required="isRequired"
:validationRules="validationRules"> :validationRules="validationRules"
:placeHolderText="placeHolderText">
<option v-if="placeHolderText" value="" selected>{{ placeHolderText }}</option>
<option v-for="(value, name, index) in options" :value="name" :key="index"> <option v-for="(value, name, index) in options" :value="name" :key="index">
{{ value }} {{ value }}
</option> </option>
@ -38,9 +42,11 @@ export default {
}, },
isDisabled: Boolean, isDisabled: Boolean,
isRequired: Boolean, isRequired: Boolean,
disableAutoFill: Boolean,
validationRules: String, validationRules: String,
cmsWidgetName: String, cmsWidgetName: String,
hasError: Boolean, hasError: Boolean,
placeHolderText: String,
}, },
setup(props) { setup(props) {
const propsClone = Object.assign({}, props); const propsClone = Object.assign({}, props);
@ -62,7 +68,7 @@ export default {
initialValue: initialValue, initialValue: initialValue,
}; };
const { errorMessage, handleBlur, handleChange, meta } = useField( const { errorMessage, handleBlur, handleChange, meta, errors } = useField(
props.inputId, props.inputId,
props.validationRules, props.validationRules,
fieldOptions fieldOptions
@ -73,6 +79,7 @@ export default {
handleBlur, handleBlur,
handleChange, handleChange,
meta, meta,
errors,
}; };
}, },
computed: { computed: {
@ -81,7 +88,7 @@ export default {
}, },
selectedOption: { selectedOption: {
get: function () { get: function () {
return this.modelValue; return !this.modelValue ? "" : this.modelValue;
}, },
set: function (newValue) { set: function (newValue) {
this.$emit("update:modelValue", newValue); this.$emit("update:modelValue", newValue);