|
|
|
|
@ -7,16 +7,18 @@ import { useFocus } from '@react-aria/interactions'; |
|
|
|
|
import { TreeState } from '@react-stately/tree'; |
|
|
|
|
import { mergeProps } from '@react-aria/utils'; |
|
|
|
|
import { Node } from '@react-types/shared'; |
|
|
|
|
import classNames from 'classnames'; |
|
|
|
|
|
|
|
|
|
import { useNavBarItemMenuContext } from './context'; |
|
|
|
|
|
|
|
|
|
export interface NavBarItemMenuItemProps { |
|
|
|
|
className?: string; |
|
|
|
|
item: Node<NavModelItem>; |
|
|
|
|
state: TreeState<NavModelItem>; |
|
|
|
|
onNavigate: (item: NavModelItem) => void; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export function NavBarItemMenuItem({ item, state, onNavigate }: NavBarItemMenuItemProps): ReactElement { |
|
|
|
|
export function NavBarItemMenuItem({ className, item, state, onNavigate }: NavBarItemMenuItemProps): ReactElement { |
|
|
|
|
const { onClose } = useNavBarItemMenuContext(); |
|
|
|
|
const { key, rendered } = item; |
|
|
|
|
const ref = useRef<HTMLLIElement>(null); |
|
|
|
|
@ -46,7 +48,7 @@ export function NavBarItemMenuItem({ item, state, onNavigate }: NavBarItemMenuIt |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<li {...mergeProps(menuItemProps, focusProps)} ref={ref} className={styles.menuItem}> |
|
|
|
|
<li {...mergeProps(menuItemProps, focusProps)} ref={ref} className={classNames(styles.menuItem, className)}> |
|
|
|
|
{rendered} |
|
|
|
|
</li> |
|
|
|
|
); |
|
|
|
|
|