112112 :size =" navButtonSize"
113113 @click =" runValidation(validate, 'next', next)"
114114 />
115- <!-- TODO: This will change to use v-else when done -->
116115 <v-btn
116+ v-else
117117 :color =" settings.color"
118118 :disabled =" fieldsHaveErrors"
119119 :size =" navButtonSize"
138138 </template >
139139 </v-stepper >
140140 </v-container >
141-
142141 </div >
143142 </div >
144143</template >
@@ -155,7 +154,6 @@ import type {
155154 Field ,
156155 Page ,
157156 Props ,
158- Settings ,
159157} from ' @/plugin/types' ;
160158import {
161159 useContainerClasses ,
@@ -166,6 +164,7 @@ import { globalOptions } from './';
166164import PageContainer from ' ./components/shared/PageContainer.vue' ;
167165import PageReviewContainer from ' ./components/shared/PageReviewContainer.vue' ;
168166import {
167+ useBuildSettings ,
169168 useColumnErrorCheck ,
170169 useMergeProps ,
171170} from ' ./composables/helpers' ;
@@ -180,46 +179,19 @@ const injectedOptions = inject(globalOptions, {});
180179
181180// -------------------------------------------------- Props //
182181const props = withDefaults (defineProps <Props >(), AllProps );
183- const stepperProps: Settings = reactive <Settings >(useMergeProps (attrs , injectedOptions , props ));
182+ let stepperProps: Settings = reactive <Settings >(useMergeProps (attrs , injectedOptions , props ));
184183const { direction, title, width } = toRefs (props );
185184const pages = reactive <Page []>(props .pages );
186185const originalPages = JSON .parse (JSON .stringify (pages ));
187186
188- const settings: Ref <Settings > = ref <Settings >({
189- altLabels: stepperProps .altLabels ,
190- autoPage: stepperProps .autoPage ,
191- autoPageDelay: stepperProps .autoPageDelay ,
192- bgColor: stepperProps .bgColor ,
193- border: stepperProps .border ,
194- canReview: stepperProps .canReview ,
195- color: stepperProps .color || ' primary' ,
196- density: stepperProps .density ,
197- disabled: stepperProps .disabled ,
198- editIcon: stepperProps .editIcon ,
199- editable: stepperProps .editable ,
200- elevation: stepperProps .elevation ,
201- errorIcon: stepperProps .errorIcon ,
202- fieldColumns: stepperProps .fieldColumns ,
203- flat: stepperProps .flat ,
204- height: stepperProps .height ,
205- hideActions: stepperProps .hideActions ,
206- hideDetails: stepperProps .hideDetails ,
207- keepValuesOnUnmount: stepperProps .keepValuesOnUnmount ,
208- maxHeight: stepperProps .maxHeight ,
209- maxWidth: stepperProps .maxWidth ,
210- minHeight: stepperProps .minHeight ,
211- minWidth: stepperProps .minWidth ,
212- nextText: stepperProps .nextText ,
213- prevText: stepperProps .prevText ,
214- rounded: stepperProps .rounded ,
215- selectedClass: stepperProps .selectedClass ,
216- theme: stepperProps .theme ,
217- tile: stepperProps .tile ,
218- transition: stepperProps .transition ,
219- validateOn: stepperProps .validateOn ,
220- validateOnMount: stepperProps .validateOnMount ,
221- variant: stepperProps .variant ,
222- });
187+ const settings: Ref <Settings > = ref <Settings >(useBuildSettings (stepperProps ));
188+
189+ watch (props , () => {
190+ stepperProps = useMergeProps (attrs , injectedOptions , props );
191+ settings .value = useBuildSettings (stepperProps );
192+ }, { deep: true });
193+
194+ provide <Ref <Settings >>(' settings' , settings );
223195
224196
225197const allFieldsArray: Ref <Field []> = ref <Field []>([]);
0 commit comments