diff --git a/src/constants/error-messages.js b/src/constants/error-messages.js index 62e79340..2fa565e2 100644 --- a/src/constants/error-messages.js +++ b/src/constants/error-messages.js @@ -10,7 +10,7 @@ const errorMessages = Object.freeze({ PASSENGER_SIDE_OPTIONS_REQUIRED: 'Please select window', WINDSHIELD_DAMAGE_TYPE_REQUIRED: 'Please select windshield damage', WINDSHIELD_CHIP_COUNT_REQUIRED: 'Please select chip(s)', - WINDSHIELD_REPLACE_OPTIONS_REQUIRED: 'Please select windshield part', + WINDSHIELD_REPLACE_OPTIONS_REQUIRED: 'Select all windshield parts that need to be replaced', REPLACE_OPTIONS_REQUIRED: 'Please select rear window type', STREET_ADDRESS_REQUIRED: 'Street Address is required.', CITY_REQUIRED: 'City is required.', diff --git a/src/digital-components/modal/modal.vue b/src/digital-components/modal/modal.vue index d4be7797..83e07ccb 100644 --- a/src/digital-components/modal/modal.vue +++ b/src/digital-components/modal/modal.vue @@ -13,20 +13,20 @@ }"> - @@ -140,10 +139,10 @@ import alert from '@/ux-components/alert/alert.vue'; import textBlock from '@/digital-components/text-block/text-block.vue'; import appointmentTypeQuestion from '@/layouts/schedule-page/service-location/appointment-type-question/appointment-type-question.vue'; import baseFormMixin from '@/mixins/base-form-mixin'; -import contentGroupModal from '@/iss-components/content-group-modal/content-group-modal.vue'; import shopAddress from '@/layouts/schedule-page/service-location/shop-address/shop-address.vue'; import serviceZipQuestion from '@/layouts/schedule-page/service-location/service-zip-question/service-zip-question.vue'; import widgetFields from '@/constants/cms-widget-fields'; +import recalModal from '@/iss-components/recal-modal/recal-modal.vue'; const RECAL_MODAL_REF_NAME = 'RecalModal'; @@ -153,9 +152,9 @@ export default { alert, textBlock, appointmentTypeQuestion, - contentGroupModal, shopAddress, - serviceZipQuestion + serviceZipQuestion, + recalModal }, mixins: [baseFormMixin], emits: ['appointment-type-changed', 'city-updated', 'clear-mobile-data', 'in-shop-zip-updated', 'mobile-zip-updated', 'provider-changed'], diff --git a/src/layouts/service-packages/service-packages.vue b/src/layouts/service-packages/service-packages.vue index 403f327e..3b76c75b 100644 --- a/src/layouts/service-packages/service-packages.vue +++ b/src/layouts/service-packages/service-packages.vue @@ -57,7 +57,7 @@ cmsWidgetName="RearWiperModal" /> diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index a27e3655..47f7463d 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -46,7 +46,8 @@ class="my-5" cmsWidgetName="HasReplacementConflict" alertClass="alert-danger" - :isDismissible="false" /> + :isDismissible="false" + :isCollapsible="true" />
diff --git a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue index bee1bc28..dc529605 100644 --- a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue +++ b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue @@ -34,7 +34,8 @@ class="mt-5" cmsWidgetName="SplitSingleConflict" alertClass="alert-danger" - :isDismissible="false" /> + :isDismissible="false" + :isCollapsible="true" />
diff --git a/src/styles/ux-variables.scss b/src/styles/ux-variables.scss index ce965a49..290bb653 100644 --- a/src/styles/ux-variables.scss +++ b/src/styles/ux-variables.scss @@ -221,7 +221,7 @@ $alert-red-color: $red; //Modal animation // This affects all [Bootstrap] modals -$modal-fade-transform: translate(0, 100%); +$modal-fade-transform: translate(0, -25%); $modal-backdrop-opacity: 0; //Disable default !important behavior diff --git a/src/ux-components/button-main/button-main.spec.js b/src/ux-components/button-main/button-main.spec.js index c6825826..1f2b3863 100644 --- a/src/ux-components/button-main/button-main.spec.js +++ b/src/ux-components/button-main/button-main.spec.js @@ -192,4 +192,37 @@ describe('buttonMain.vue', () => { // Expect expect(spy).not.toHaveBeenCalled(); }); + + describe('Button Types', () => { + it('Should set button type to submit', async () => { + // Act + const wrapper = shallowMount( + buttonMain, + setupMocks({ + propsData: { + buttonType: 'submit' + } + }) + ); + + // Assert + const button = wrapper.find('button'); + + // Expect + expect(button.attributes('type')).toEqual('submit'); + }); + it('Should default button type to button', async () => { + // Act + const wrapper = shallowMount( + buttonMain, + setupMocks() + ); + + // Assert + const button = wrapper.find('button'); + + // Expect + expect(button.attributes('type')).toEqual('button'); + }); + }); }); diff --git a/src/ux-components/button-main/button-main.vue b/src/ux-components/button-main/button-main.vue index c78417b3..87cc8c09 100644 --- a/src/ux-components/button-main/button-main.vue +++ b/src/ux-components/button-main/button-main.vue @@ -3,6 +3,7 @@ :aria-disabled="isDisabled" class="btn d-flex align-items-center justify-content-center delay" :class="[getVariant, `btn-${size}`, canOverride ? 'btn-override' : '']" + :type="buttonType" @click="clicked"> {{ buttonText }} @@ -22,7 +23,8 @@ export default { isOutline: Boolean, pushToGA: Boolean, canOverride: { type: Boolean, required: false, default: true }, - preventDefaultOnClick: { type: Boolean, required: false, default: false } + preventDefaultOnClick: { type: Boolean, required: false, default: false }, + buttonType: { type: String, required: false, default: 'button', validator: (val) => ['button', 'submit', 'reset'].includes(val) } }, emits: ['click-event'], computed: {