Skip to content

Commit aa6a95c

Browse files
committed
feat(datepicker): Add transition on toggle
1 parent 4726390 commit aa6a95c

File tree

2 files changed

+53
-41
lines changed

2 files changed

+53
-41
lines changed

src/components/Datepicker.vue

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -50,48 +50,50 @@
5050
:rtl="isRtl"
5151
:visible="isOpen"
5252
>
53-
<div
54-
v-show="isOpen"
55-
ref="datepicker"
56-
class="vdp-datepicker__calendar"
57-
:class="pickerClasses"
58-
@mousedown.prevent
59-
>
60-
<slot name="beforeCalendarHeader" />
61-
<Component
62-
:is="picker"
63-
class="picker-view"
64-
:day-cell-content="dayCellContent"
65-
:disabled-dates="disabledDates"
66-
:first-day-of-week="firstDayOfWeek"
67-
:highlighted="highlighted"
68-
:is-rtl="isRtl"
69-
:is-up-disabled="isUpDisabled"
70-
:page-date="pageDate"
71-
:selected-date="selectedDate"
72-
:show-edge-dates="showEdgeDates"
73-
:show-full-month-name="fullMonthName"
74-
:show-header="showHeader"
75-
:transition-name="transitionName"
76-
:translation="translation"
77-
:use-utc="useUtc"
78-
:view="view || computedInitialView"
79-
:year-range="yearPickerRange"
80-
@page-change="handlePageChange"
81-
@select="handleSelect"
82-
@select-disabled="handleSelectDisabled"
83-
@set-transition-name="setTransitionName($event)"
84-
@set-view="setView"
53+
<Transition name="toggle">
54+
<div
55+
v-show="isOpen"
56+
ref="datepicker"
57+
class="vdp-datepicker__calendar"
58+
:class="pickerClasses"
59+
@mousedown.prevent
8560
>
86-
<template v-for="slotKey of calendarSlots">
87-
<slot :slot="slotKey" :name="slotKey" />
88-
</template>
89-
<template #dayCellContent="{ cell }">
90-
<slot v-if="cell" name="dayCellContent" :cell="cell" />
91-
</template>
92-
</Component>
93-
<slot name="calendarFooter" />
94-
</div>
61+
<slot name="beforeCalendarHeader" />
62+
<Component
63+
:is="picker"
64+
class="picker-view"
65+
:day-cell-content="dayCellContent"
66+
:disabled-dates="disabledDates"
67+
:first-day-of-week="firstDayOfWeek"
68+
:highlighted="highlighted"
69+
:is-rtl="isRtl"
70+
:is-up-disabled="isUpDisabled"
71+
:page-date="pageDate"
72+
:selected-date="selectedDate"
73+
:show-edge-dates="showEdgeDates"
74+
:show-full-month-name="fullMonthName"
75+
:show-header="showHeader"
76+
:transition-name="transitionName"
77+
:translation="translation"
78+
:use-utc="useUtc"
79+
:view="view || computedInitialView"
80+
:year-range="yearPickerRange"
81+
@page-change="handlePageChange"
82+
@select="handleSelect"
83+
@select-disabled="handleSelectDisabled"
84+
@set-transition-name="setTransitionName($event)"
85+
@set-view="setView"
86+
>
87+
<template v-for="slotKey of calendarSlots">
88+
<slot :slot="slotKey" :name="slotKey" />
89+
</template>
90+
<template #dayCellContent="{ cell }">
91+
<slot v-if="cell" name="dayCellContent" :cell="cell" />
92+
</template>
93+
</Component>
94+
<slot name="calendarFooter" />
95+
</div>
96+
</Transition>
9597
</Popup>
9698
</div>
9799
</template>

src/styles/style.scss

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,16 @@
230230
}
231231
}
232232

233+
.toggle-enter-active,
234+
.toggle-leave-active {
235+
transition: all 250ms ease;
236+
}
237+
238+
.toggle-enter,
239+
.toggle-leave-to {
240+
opacity: 0;
241+
}
242+
233243
.vdp-datepicker__clear-button,
234244
.vdp-datepicker__calendar-button {
235245
cursor: pointer;

0 commit comments

Comments
 (0)