@@ -65,7 +65,7 @@ export const menuProps = () => ({
6565 mode : { type : String as PropType < MenuMode > , default : 'vertical' } ,
6666
6767 inlineIndent : { type : Number , default : 24 } ,
68- subMenuOpenDelay : { type : Number , default : 0.1 } ,
68+ subMenuOpenDelay : { type : Number , default : 0 } ,
6969 subMenuCloseDelay : { type : Number , default : 0.1 } ,
7070
7171 builtinPlacements : { type : Object as PropType < BuiltinPlacements > } ,
@@ -201,41 +201,40 @@ export default defineComponent({
201201
202202 // >>>>> Trigger select
203203 const triggerSelection = ( info : MenuInfo ) => {
204- if ( ! props . selectable ) {
205- return ;
206- }
207- // Insert or Remove
208- const { key : targetKey } = info ;
209- const exist = mergedSelectedKeys . value . includes ( targetKey ) ;
210- let newSelectedKeys : Key [ ] ;
211-
212- if ( props . multiple ) {
213- if ( exist ) {
214- newSelectedKeys = mergedSelectedKeys . value . filter ( key => key !== targetKey ) ;
204+ if ( props . selectable ) {
205+ // Insert or Remove
206+ const { key : targetKey } = info ;
207+ const exist = mergedSelectedKeys . value . includes ( targetKey ) ;
208+ let newSelectedKeys : Key [ ] ;
209+
210+ if ( props . multiple ) {
211+ if ( exist ) {
212+ newSelectedKeys = mergedSelectedKeys . value . filter ( key => key !== targetKey ) ;
213+ } else {
214+ newSelectedKeys = [ ...mergedSelectedKeys . value , targetKey ] ;
215+ }
215216 } else {
216- newSelectedKeys = [ ... mergedSelectedKeys . value , targetKey ] ;
217+ newSelectedKeys = [ targetKey ] ;
217218 }
218- } else {
219- newSelectedKeys = [ targetKey ] ;
220- }
221219
222- // Trigger event
223- const selectInfo : SelectInfo = {
224- ...info ,
225- selectedKeys : newSelectedKeys ,
226- } ;
227- if ( ! shallowEqual ( newSelectedKeys , mergedSelectedKeys . value ) ) {
228- if ( props . selectedKeys === undefined ) {
229- mergedSelectedKeys . value = newSelectedKeys ;
230- }
231- emit ( 'update:selectedKeys' , newSelectedKeys ) ;
232- if ( exist && props . multiple ) {
233- emit ( 'deselect' , selectInfo ) ;
234- } else {
235- emit ( 'select' , selectInfo ) ;
220+ // Trigger event
221+ const selectInfo : SelectInfo = {
222+ ...info ,
223+ selectedKeys : newSelectedKeys ,
224+ } ;
225+ if ( ! shallowEqual ( newSelectedKeys , mergedSelectedKeys . value ) ) {
226+ if ( props . selectedKeys === undefined ) {
227+ mergedSelectedKeys . value = newSelectedKeys ;
228+ }
229+ emit ( 'update:selectedKeys' , newSelectedKeys ) ;
230+ if ( exist && props . multiple ) {
231+ emit ( 'deselect' , selectInfo ) ;
232+ } else {
233+ emit ( 'select' , selectInfo ) ;
234+ }
236235 }
237236 }
238-
237+ // Whatever selectable, always close it
239238 if ( mergedMode . value !== 'inline' && ! props . multiple && mergedOpenKeys . value . length ) {
240239 triggerOpenKeys ( EMPTY_LIST ) ;
241240 }
@@ -432,7 +431,6 @@ export default defineComponent({
432431 registerMenuInfo,
433432 unRegisterMenuInfo,
434433 selectedSubMenuKeys,
435- isRootMenu : shallowRef ( true ) ,
436434 expandIcon,
437435 forceSubMenuRender : computed ( ( ) => props . forceSubMenuRender ) ,
438436 rootClassName : hashId ,
0 commit comments