Skip to content

Commit 1cfaf3c

Browse files
Samuell1marcosmoura
authored andcommitted
feat(MdDatepicker): override browser native pickers (#1270)
* feat(MdDatepicker): override browser native pickers * docs(MdDatepicker): add md-override-native prop * docs(MdDatepicker): remove note about firefox * refactor(MdDatepicker): remove nested statement
1 parent 843056d commit 1cfaf3c

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

docs/app/pages/Components/Datepicker/Datepicker.vue

+6-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
<page-container centered :title="$t('pages.datepicker.title')">
88
<div class="page-container-section">
99
<p>Datepickers use a dialog window and provide a simple way to select a single value from a pre-determined set. The component can have disabled dates and it's really easy to use.</p>
10-
<note-block alert>The datepicker dialog is disabled in Firefox, because it have a built-in Datepicker on desktop.</note-block>
1110
</div>
1211

1312
<div class="page-container-section">
@@ -65,6 +64,12 @@
6564
type: 'Boolean',
6665
description: 'Disable the on focus event. Will open only if the user clicks on the icon.',
6766
defaults: 'true'
67+
},
68+
{
69+
name: 'md-override-native',
70+
type: 'Boolean',
71+
description: 'Override native browser pickers by changing type of input to text.',
72+
defaults: 'true'
6873
}
6974
]
7075
}

src/components/MdDatepicker/MdDatepicker.vue

+13-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<md-field class="md-datepicker">
33
<md-date-icon class="md-date-icon" @click.native="toggleDialog" />
4-
<md-input type="date" ref="input" v-model="modelDate" @focus.native="onFocus" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}" />
4+
<md-input :type="type" ref="input" v-model="modelDate" @focus.native="onFocus" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}" />
55

66
<slot />
77

@@ -40,13 +40,24 @@
4040
mdOpenOnFocus: {
4141
type: Boolean,
4242
default: true
43+
},
44+
mdOverrideNative: {
45+
type: Boolean,
46+
default: true
4347
}
4448
},
4549
data: () => ({
4650
showDialog: false,
4751
modelDate: null,
4852
selectedDate: null
4953
}),
54+
computed: {
55+
type () {
56+
return this.mdOverrideNative
57+
? 'text'
58+
: 'date'
59+
}
60+
},
5061
watch: {
5162
selectedDate (selectedDate) {
5263
if (selectedDate) {
@@ -71,7 +82,7 @@
7182
},
7283
methods: {
7384
toggleDialog () {
74-
if (!isFirefox) {
85+
if (!isFirefox || this.mdOverrideNative) {
7586
this.showDialog = !this.showDialog
7687
} else {
7788
this.$refs.input.$el.click()

0 commit comments

Comments
 (0)