Skip to content

Commit fbf6d2a

Browse files
shafimspmarcosmoura
authored andcommitted
feat(MdFile): Support with field variants (#1662)
* feat(MdFile): Support with field variants * docs(MdFile): Support with field variants
1 parent c502a16 commit fbf6d2a

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

docs/app/pages/Components/File/examples/FileField.vue

+6
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,37 @@
11
<template>
22
<div>
33
<md-field>
4+
<md-icon md-file-trigger>attach_file</md-icon>
45
<label>Single</label>
56
<md-file v-model="single" />
67
</md-field>
78

89
<md-field>
10+
<md-icon md-file-trigger>attach_file</md-icon>
911
<label>Upload files</label>
1012
<md-file v-model="placeholder" placeholder="A nice input placeholder" />
1113
</md-field>
1214

1315
<md-field>
16+
<md-icon md-file-trigger>attach_file</md-icon>
1417
<label>Disabled</label>
1518
<md-file v-model="disabled" disabled/>
1619
</md-field>
1720

1821
<md-field>
22+
<md-icon md-file-trigger>attach_file</md-icon>
1923
<label>Initial value</label>
2024
<md-file v-model="initial" />
2125
</md-field>
2226

2327
<md-field>
28+
<md-icon md-file-trigger>attach_file</md-icon>
2429
<label>Multiple</label>
2530
<md-file v-model="multiple" multiple />
2631
</md-field>
2732

2833
<md-field>
34+
<md-icon md-file-trigger>attach_file</md-icon>
2935
<label>Only images</label>
3036
<md-file v-model="single" accept="image/*" />
3137
</md-field>

src/components/MdField/MdFile/MdFile.vue

+25-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
<template>
22
<div class="md-file">
3-
<md-file-icon @click.native="openPicker" />
4-
53
<input
64
class="md-input"
75
readonly
@@ -31,6 +29,11 @@
3129
},
3230
name: String
3331
},
32+
data () {
33+
return {
34+
triggerEl: null
35+
}
36+
},
3437
mixins: [MdFieldMixin],
3538
inject: ['MdField'],
3639
methods: {
@@ -73,8 +76,20 @@
7376
created () {
7477
this.MdField.file = true
7578
},
79+
mounted () {
80+
this.$nextTick().then(() => {
81+
this.triggerEl = this.MdField.$el.querySelector('[md-file-trigger]')
82+
if (this.triggerEl) {
83+
this.triggerEl.addEventListener('click', this.openPicker)
84+
}
85+
})
86+
},
7687
beforeDestroy () {
7788
this.MdField.file = false
89+
90+
if (this.triggerEl) {
91+
this.triggerEl.removeEventListener('click', this.openPicker)
92+
}
7893
}
7994
}
8095
</script>
@@ -99,4 +114,12 @@
99114
cursor: pointer;
100115
}
101116
}
117+
118+
.md-field {
119+
&.md-has-file {
120+
[md-file-trigger] {
121+
cursor: pointer;
122+
}
123+
}
124+
}
102125
</style>

0 commit comments

Comments
 (0)