Skip to content

Commit 8bda813

Browse files
VdustRmarcosmoura
authored andcommitted
refactor(MdSelect): remove uuid (vuematerial#1368)
* fix(MdMenuContent): attrs binding * refactor(MdMenuContent): remove this * refactor(MdSelect): remove uuid use `ref` instead of `uuid` to access menu container
1 parent 70712d7 commit 8bda813

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

src/components/MdField/MdSelect/MdSelect.vue

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
:md-offset-x="offset.x"
88
:md-offset-y="offset.y"
99
:md-dense="mdDense"
10-
@md-opened="onOpen"
1110
@md-closed="onClose">
1211
<md-input
1312
class="md-input md-select-value"
@@ -33,7 +32,7 @@
3332
class="md-select-menu"
3433
:md-content-class="mdClass"
3534
:style="menuStyles"
36-
:id="uniqueId">
35+
@enter="onMenuEnter">
3736
<slot />
3837
</md-menu-content>
3938
</keep-alive>
@@ -45,7 +44,6 @@
4544

4645
<script>
4746
import raf from 'raf'
48-
import MdUuid from 'core/utils/MdUuid'
4947
import MdComponent from 'core/MdComponent'
5048
import MdDropDownIcon from 'core/icons/MdDropDownIcon'
5149
import MdMenu from 'components/MdMenu/MdMenu'
@@ -77,7 +75,6 @@
7775
inject: ['MdField'],
7876
data () {
7977
return {
80-
uniqueId: 'md-select-menu-' + MdUuid(),
8178
menuStyles: {},
8279
offset: {
8380
x: defaultOffset.x,
@@ -139,10 +136,8 @@
139136
menu.scrollTop = top - ((menuHeight - elHeight) / 2)
140137
},
141138
async setOffsets (target) {
142-
await this.$nextTick()
143-
144139
if (!this.$isServer) {
145-
const menu = document.getElementById(this.uniqueId)
140+
const menu = this.$refs.menu.$refs.container
146141
147142
if (menu) {
148143
const selected = target || menu.querySelector('.md-selected')
@@ -160,14 +155,14 @@
160155
}
161156
}
162157
},
163-
onOpen () {
164-
this.$emit('md-opened')
165-
if (this.didMount) {
166-
this.setOffsets()
167-
window.setTimeout(() => {
168-
this.MdField.focused = true
169-
}, 10)
158+
onMenuEnter () {
159+
if (!this.didMount) {
160+
return
170161
}
162+
163+
this.setOffsets()
164+
this.MdField.focused = true
165+
this.$emit('md-opened')
171166
},
172167
applyHighlight () {
173168
this.MdField.focused = false

src/components/MdMenu/MdMenuContent.vue

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<md-popover :md-settings="popperSettings" :md-active="shouldRender">
3-
<transition name="md-menu-content" :css="didMount" v-if="shouldRender">
3+
<transition name="md-menu-content" :css="didMount" v-if="shouldRender" v-on="$listeners">
44
<div
55
:class="[menuClasses, mdContentClass, $mdActiveTheme]"
66
:style="menuStyles"
@@ -9,8 +9,8 @@
99
@keydown.space.prevent="setSelection"
1010
@keydown.enter.prevent="setSelection"
1111
ref="menu">
12-
<div class="md-menu-content-container md-scrollbar" :class="$mdActiveTheme">
13-
<md-list :class="listClasses" v-bind="$attrs" @keydown.esc="onEsc">
12+
<div class="md-menu-content-container md-scrollbar" :class="$mdActiveTheme" ref="container">
13+
<md-list :class="listClasses" v-bind="filteredAttrs" @keydown.esc="onEsc">
1414
<slot />
1515
</md-list>
1616
</div>
@@ -48,6 +48,11 @@
4848
menuStyles: ''
4949
}),
5050
computed: {
51+
filteredAttrs () {
52+
const attrs = this.$attrs
53+
delete attrs.id
54+
return attrs
55+
},
5156
highlightedItem () {
5257
return this.highlightItems[this.highlightIndex]
5358
},

0 commit comments

Comments
 (0)