Skip to content

Commit b071291

Browse files
Chartman123backportbot[bot]
authored andcommitted
QuestionDate: refactor handling of computed props
Signed-off-by: Christian Hartmann <chris-hartmann@gmx.de>
1 parent a1e389c commit b071291

1 file changed

Lines changed: 56 additions & 36 deletions

File tree

src/components/Questions/QuestionDate.vue

Lines changed: 56 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,35 @@
1010
:warning-invalid="answerType.warningInvalid"
1111
v-on="commonListeners">
1212
<template v-if="answerType.pickerType === 'date'" #actions>
13-
<NcActionCheckbox v-model="dateRange">
13+
<NcActionCheckbox
14+
:model-value="dateRange"
15+
@update:model-value="onDateRangeChange">
1416
{{ t('forms', 'Use date range') }}
1517
</NcActionCheckbox>
1618
<NcActionInput
17-
v-model="dateMin"
1819
type="date"
20+
is-native-picker
21+
:model-value="dateMin"
1922
:label="t('forms', 'Earliest date')"
2023
hide-label
2124
:formatter="extraSettingsFormatter"
22-
is-native-picker
23-
:max="dateMax">
25+
:max="dateMax"
26+
@update:model-value="onDateMinChange">
2427
<template #icon>
2528
<NcIconSvgWrapper
2629
:svg="svgTodayIcon"
2730
:name="t('forms', 'Earliest date')" />
2831
</template>
2932
</NcActionInput>
3033
<NcActionInput
31-
v-model="dateMax"
3234
type="date"
35+
is-native-picker
36+
:model-value="dateMax"
3337
:label="t('forms', 'Latest date')"
3438
hide-label
3539
:formatter="extraSettingsFormatter"
36-
is-native-picker
37-
:min="dateMin">
40+
:min="dateMin"
41+
@update:model-value="onDateMaxChange">
3842
<template #icon>
3943
<NcIconSvgWrapper
4044
:svg="svgEventIcon"
@@ -133,42 +137,23 @@ export default {
133137
/**
134138
* The maximum allowable date for the date input field
135139
*/
136-
dateMax: {
137-
get() {
138-
return this.extraSettings?.dateMax
139-
? moment(this.extraSettings.dateMax, 'X').toDate()
140-
: null
141-
},
142-
set(value) {
143-
this.onExtraSettingsChange({
144-
dateMax: parseInt(moment(value).format('X')),
145-
})
146-
},
140+
dateMax() {
141+
return this.extraSettings?.dateMax
142+
? moment(this.extraSettings.dateMax, 'X').toDate()
143+
: null
147144
},
148145
149146
/**
150147
* The minimum allowable date for the date input field
151148
*/
152-
dateMin: {
153-
get() {
154-
return this.extraSettings?.dateMin
155-
? moment(this.extraSettings.dateMin, 'X').toDate()
156-
: null
157-
},
158-
set(value) {
159-
this.onExtraSettingsChange({
160-
dateMin: parseInt(moment(value).format('X')),
161-
})
162-
},
149+
dateMin() {
150+
return this.extraSettings?.dateMin
151+
? moment(this.extraSettings.dateMin, 'X').toDate()
152+
: null
163153
},
164154
165-
dateRange: {
166-
get() {
167-
return this.extraSettings?.dateRange ?? false
168-
},
169-
set(value) {
170-
this.onExtraSettingsChange({ dateRange: value === true ?? null })
171-
},
155+
dateRange() {
156+
return this.extraSettings?.dateRange ?? false
172157
},
173158
},
174159
@@ -196,6 +181,41 @@ export default {
196181
]).toDate()
197182
},
198183
184+
/**
185+
* Handles the change event for the maximum date input.
186+
* Updates the maximum allowable date based on the provided value.
187+
*
188+
* @param {string | Date} value - The new maximum date value. Can be a string or a Date object.
189+
*/
190+
onDateMaxChange(value) {
191+
this.onExtraSettingsChange({
192+
dateMax: parseInt(moment(value).format('X')),
193+
})
194+
},
195+
196+
/**
197+
* Handles the change event for the minimum date input.
198+
* Updates the minimum allowable date based on the provided value.
199+
*
200+
* @param {string | Date} value - The new minimum date value. Can be a string or a Date object.
201+
*/
202+
onDateMinChange(value) {
203+
this.onExtraSettingsChange({
204+
dateMin: parseInt(moment(value).format('X')),
205+
})
206+
},
207+
208+
/**
209+
* Handles the change event for the date range selection.
210+
* Updates the extra settings with the new date range value.
211+
*
212+
* @param {boolean} value - The new value of the date range selection.
213+
* If true, the date range is enabled; otherwise, null.
214+
*/
215+
onDateRangeChange(value) {
216+
this.onExtraSettingsChange({ dateRange: value === true ?? null })
217+
},
218+
199219
/**
200220
* Store Value
201221
*

0 commit comments

Comments
 (0)