@@ -4,21 +4,23 @@ import React, { useCallback, useMemo } from 'react';
44import { useDPrefixConfig , useDComponentConfig , useCustomContext } from '../../hooks' ;
55import { getClassName , toId } from '../../utils' ;
66import { DMenuContext } from './Menu' ;
7- import { generateChildren , isMenuComponent } from './utils' ;
7+ import { generateChildren } from './utils' ;
88
99export interface DMenuGroupProps extends React . HTMLAttributes < HTMLDivElement > {
10+ dId : string ;
1011 dTitle : React . ReactNode ;
11- __id ?: string ;
1212 __level ?: number ;
13+ __navMenu ?: boolean ;
1314 __onFocus ?: ( id : string ) => void ;
1415 __onBlur ?: ( id : string ) => void ;
1516}
1617
1718export function DMenuGroup ( props : DMenuGroupProps ) {
1819 const {
20+ dId,
1921 dTitle,
20- __id = '' ,
2122 __level = 0 ,
23+ __navMenu = false ,
2224 __onFocus,
2325 __onBlur,
2426 className,
@@ -56,17 +58,17 @@ export function DMenuGroup(props: DMenuGroupProps) {
5658 const handleFocus = useCallback (
5759 ( e ) => {
5860 onFocus ?.( e ) ;
59- __onFocus ?.( `menu-group-${ toId ( __id ) } ` ) ;
61+ __onFocus ?.( `menu-group-${ toId ( dId ) } ` ) ;
6062 } ,
61- [ __id , __onFocus , onFocus ]
63+ [ __onFocus , dId , onFocus ]
6264 ) ;
6365
6466 const handleBlur = useCallback (
6567 ( e ) => {
6668 onBlur ?.( e ) ;
67- __onBlur ?.( `menu-group-${ toId ( __id ) } ` ) ;
69+ __onBlur ?.( `menu-group-${ toId ( dId ) } ` ) ;
6870 } ,
69- [ __id , __onBlur , onBlur ]
71+ [ __onBlur , onBlur , dId ]
7072 ) ;
7173 //#endregion
7274
@@ -82,32 +84,28 @@ export function DMenuGroup(props: DMenuGroupProps) {
8284 const childs = useMemo ( ( ) => {
8385 const arr : string [ ] = [ ] ;
8486 const _childs = generateChildren ( children , true ) . map ( ( child ) => {
85- if ( isMenuComponent ( child ) ) {
86- arr . push ( child . props . __id ) ;
87- return React . cloneElement ( child , {
88- ...child . props ,
89- __level : __level + 1 ,
90- __onFocus : ( id : string ) => {
91- __onFocus ?.( id ) ;
92- } ,
93- __onBlur : ( id : string ) => {
94- __onBlur ?.( id ) ;
95- } ,
96- } ) ;
97- }
98-
99- return child ;
87+ arr . push ( child . props . dId ) ;
88+ return React . cloneElement ( child , {
89+ ...child . props ,
90+ __level : __level + 1 ,
91+ __onFocus : ( id : string ) => {
92+ __onFocus ?.( id ) ;
93+ } ,
94+ __onBlur : ( id : string ) => {
95+ __onBlur ?.( id ) ;
96+ } ,
97+ } ) ;
10098 } ) ;
101- _currentData ?. ids . set ( __id , arr ) ;
99+ _currentData ?. ids . set ( dId , arr ) ;
102100 return _childs ;
103- } , [ __id , __level , __onFocus , __onBlur , _currentData , children ] ) ;
101+ } , [ __level , __onFocus , __onBlur , _currentData , dId , children ] ) ;
104102 //#endregion
105103
106104 return (
107105 < >
108106 < div
109107 { ...restProps }
110- id = { `menu-group-${ toId ( __id ) } ` }
108+ id = { `menu-group-${ toId ( dId ) } ` }
111109 className = { getClassName ( className , `${ dPrefix } menu-group` ) }
112110 style = { {
113111 ...style ,
0 commit comments