Skip to content

Commit baa3632

Browse files
authored
Merge pull request #1025 from Sysvale/hotfix/month-and-year-picker-limits
Hotfix/month and year picker limits
2 parents 530da2b + 4f0290b commit baa3632

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sysvale/cuida",
3-
"version": "3.152.0",
3+
"version": "3.152.1",
44
"description": "A design system built by Sysvale, using storybook and Vue components",
55
"repository": {
66
"type": "git",

src/components/MonthAndYearPicker.vue

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@
3131
@mousedown.prevent="handleCalendarMouseDown"
3232
>
3333
<div class="dropdown__header">
34-
<span
35-
class="dropdown__month-and-title--no-hover"
36-
@click="toggleYearPickerDisplay"
37-
>
38-
{{ currentYear }}
39-
</span>
34+
<span
35+
class="dropdown__month-and-title--no-hover"
36+
@click="toggleYearPickerDisplay"
37+
>
38+
{{ currentYear }}
39+
</span>
4040

4141
<CdsFlexbox>
4242
<CdsIcon
@@ -254,7 +254,7 @@ watch(datePickerRef, (newValue) => {
254254
function handleMonthSelection(selectedMonth) {
255255
internalValue.value = internalValue.value ? internalValue.value : DateTime.now().setLocale('pt-BR').toFormat('dd/MM/yyyy');
256256
showMonthPicker.value = !showMonthPicker.value;
257-
let [day, month, year] = internalValue.value.toFormat('dd/MM/yyyy').split('/');
257+
let [, month, year] = internalValue.value.toFormat('dd/MM/yyyy').split('/');
258258
month = selectedMonth.index;
259259
260260
internalValue.value = DateTime.fromObject({ year: year, month: month }).setLocale('pt-BR');
@@ -287,15 +287,27 @@ function allowNextYearNavigation() {
287287
}
288288
289289
function previousYear() {
290-
if (allowPreviousYearNavigation()) {
291-
internalValue.value = internalValue.value.minus({ year: 1 });
290+
if (!allowPreviousYearNavigation()) return;
291+
292+
if (DateTime.min(internalValue.value.minus({ year: 1 }), minDateObj.value) !== minDateObj.value) {
293+
internalValue.value = minDateObj.value;
294+
model.value = internalValue.value.toFormat('yyyy-MM');
295+
return;
292296
}
297+
298+
internalValue.value = internalValue.value.minus({ year: 1 });
293299
}
294300
295301
function nextYear() {
296-
if (allowNextYearNavigation()) {
297-
internalValue.value = internalValue.value.plus({ year: 1 });
302+
if (!allowNextYearNavigation()) return;
303+
304+
if (DateTime.max(internalValue.value.plus({ year: 1 }), maxDateObj.value) !== maxDateObj.value) {
305+
internalValue.value = maxDateObj.value;
306+
model.value = internalValue.value.toFormat('yyyy-MM');
307+
return;
298308
}
309+
310+
internalValue.value = internalValue.value.plus({ year: 1 });
299311
}
300312
301313
function toggleDatePicker() {

0 commit comments

Comments
 (0)