Skip to content

Commit 723ed9d

Browse files
committed
v0.1.7
reset date when showing datepicker
1 parent abfc40c commit 723ed9d

File tree

9 files changed

+74
-72
lines changed

9 files changed

+74
-72
lines changed

dist/vue-datepicker.esm.js

Lines changed: 17 additions & 19 deletions
Large diffs are not rendered by default.

dist/vue-datepicker.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/vue-datepicker.umd.js

Lines changed: 17 additions & 19 deletions
Large diffs are not rendered by default.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@mathieustan/vue-datepicker",
33
"description": "A clean datepicker made with VueJs",
4-
"version": "0.1.6",
4+
"version": "0.1.7",
55
"author": "Mathieu Stanowski <[email protected]>",
66
"keywords": [
77
"vue",

src/components/datepicker/DatePicker.vue

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
:fullscreen-mobile="fullscreenMobile"
2424
:attach-to="attachTo"
2525
:z-index="zIndex"
26-
@close="resetDate"
26+
@close="hideDatePicker"
2727
/>
2828
<DatepickerAgenda
2929
:name="name"
@@ -48,9 +48,7 @@
4848
:z-index="zIndex + 1"
4949
@selectDate="changeDate"
5050
@validateDate="validateDate"
51-
@resetDate="resetDate"
5251
@close="hideDatePicker"
53-
@hide="hideDatePicker"
5452
/>
5553
</div>
5654
</template>
@@ -177,11 +175,14 @@ export default {
177175
},
178176
showDatePicker () {
179177
if (this.disabled) return;
178+
179+
this.initDate(this.value);
180180
this.isVisible = true;
181181
this.$emit('onOpen');
182182
},
183183
hideDatePicker () {
184184
if (!this.isVisible) return;
185+
185186
this.isVisible = false;
186187
clearAllBodyScrollLocks();
187188
this.$emit('onClose');
@@ -196,10 +197,6 @@ export default {
196197
}
197198
this.date = date && dayjs(date, this.outputFormat);
198199
},
199-
resetDate () {
200-
this.initDate(this.value);
201-
this.hideDatePicker();
202-
},
203200
changeDate (date) {
204201
this.date = date;
205202
if (this.validate) return;

src/components/datepicker/DatePickerAgenda.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<transition name="datepicker-transition" appear @after-enter="setActive">
33
<div
4-
v-click-outside="{ handler : () => $emit('resetDate'), isActive: !inline && isActive }"
4+
v-click-outside="{ handler : () => $emit('close'), isActive: !inline && isActive }"
55
v-if="shouldShowAgenda"
66
ref="content"
77
:style="styles"
@@ -144,7 +144,7 @@
144144
:button-validate="buttonValidate"
145145
:button-cancel="buttonCancel"
146146
:color="color"
147-
@cancel="$emit('resetDate')"
147+
@cancel="$emit('close')"
148148
@validate="$emit('validateDate')"
149149
/>
150150
</div>

src/components/datepicker/DatePickerPresets.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ export default {
6666
return availableDates.length > 0;
6767
},
6868
setPresetDates ({ availableDates }) {
69+
if (this.isPresetSelected({ availableDates })) return;
70+
6971
this.$emit('updateRange', {
7072
start: availableDates[0],
7173
end: availableDates[availableDates.length - 1],
@@ -148,6 +150,7 @@ export default {
148150
149151
&--selected {
150152
color: white;
153+
pointer-events: none;
151154
152155
.datepicker-preset__effect {
153156
opacity: 1;

tests/unit/components/datepicker/DatePicker.spec.js

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,28 @@ describe('DatePicker', () => {
165165
});
166166

167167
describe('showDatePicker', () => {
168+
it.each([
169+
[
170+
{ date: { start: dummyDate, end: undefined }, range: true },
171+
{ date: { start: dayjs('2019-02-01'), end: dayjs('2019-03-01') } },
172+
{ start: dayjs(dummyDate, DEFAULT_OUTPUT_DATE_FORMAT.date), end: undefined },
173+
],
174+
[{ date: dummyDate }, dayjs('2019-02-01'), dayjs(dummyDate, DEFAULT_OUTPUT_DATE_FORMAT.date)],
175+
[{ date: undefined }, dayjs('2019-02-01'), undefined],
176+
])(
177+
'when props = %p, current date = %p, should reset date to %p & close',
178+
(props, currentDate, expectedResult) => {
179+
const wrapper = mountComponent(props);
180+
wrapper.setData({ date: currentDate });
181+
jest.spyOn(wrapper.vm, 'hideDatePicker');
182+
183+
wrapper.vm.showDatePicker();
184+
expect(wrapper.vm.date).toEqual(expectedResult);
185+
expect(wrapper.vm.isVisible).toEqual(true);
186+
expect(wrapper.emitted().onOpen).toBeTruthy();
187+
},
188+
);
189+
168190
it('should set isVisible to true', () => {
169191
const wrapper = mountComponent();
170192
wrapper.setData({ isVisible: false });
@@ -206,29 +228,6 @@ describe('DatePicker', () => {
206228
});
207229
});
208230

209-
describe('resetDate', () => {
210-
it.each([
211-
[
212-
{ date: { start: dummyDate, end: undefined }, range: true },
213-
{ date: { start: dayjs('2019-02-01'), end: dayjs('2019-03-01') } },
214-
{ start: dayjs(dummyDate, DEFAULT_OUTPUT_DATE_FORMAT.date), end: undefined },
215-
],
216-
[{ date: dummyDate }, dayjs('2019-02-01'), dayjs(dummyDate, DEFAULT_OUTPUT_DATE_FORMAT.date)],
217-
[{ date: undefined }, dayjs('2019-02-01'), undefined],
218-
])(
219-
'when props = %p, current date = %p, should reset date to %p & close',
220-
(props, currentDate, expectedResult) => {
221-
const wrapper = mountComponent(props);
222-
wrapper.setData({ date: currentDate });
223-
jest.spyOn(wrapper.vm, 'hideDatePicker');
224-
225-
wrapper.vm.resetDate();
226-
expect(wrapper.vm.date).toEqual(expectedResult);
227-
expect(wrapper.vm.hideDatePicker).toHaveBeenCalled();
228-
},
229-
);
230-
});
231-
232231
describe('changeDate', () => {
233232
it('should update date', () => {
234233
const wrapper = mountComponent();

tests/unit/components/datepicker/DatePickerPresets.spec.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,13 @@ describe('DatePickerPresets', () => {
114114
});
115115

116116
describe('setPresetDates', () => {
117+
it('should do nothing if preset is already selected', () => {
118+
const wrapper = mountComponent({ mutableDate: { start: '2018-01-29', end: '2018-01-31' } });
119+
const preset = { availableDates: [dayjs('2018-01-29'), dayjs('2018-01-30'), dayjs('2018-01-31')] };
120+
wrapper.vm.setPresetDates(preset);
121+
expect(wrapper.emitted().updateRange).toBeFalsy();
122+
});
123+
117124
it('Should emit first & last day from available dates', () => {
118125
const wrapper = mountComponent();
119126
const preset = { availableDates: [dayjs('2018-01-29'), dayjs('2018-01-30'), dayjs('2018-01-31')] };

0 commit comments

Comments
 (0)