MCPcopy Index your code
hub / github.com/editablejs/editable / MenuSub

Function MenuSub

packages/ui/src/menu.tsx:700–736  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

698}
699
700const MenuSub: React.FC<MenuSub> = props => {
701 const { children, open = false, onOpenChange } = props
702 const parentMenuContext = useMenuContext()
703 const [trigger, setTrigger] = React.useState<MenuSubTriggerElement | null>(null)
704 const [content, setContent] = React.useState<MenuContentElement | null>(null)
705 const handleOpenChange = useCallbackRef(onOpenChange)
706
707 // Prevent the parent menu from reopening with open submenus.
708 React.useEffect(() => {
709 if (parentMenuContext.open === false) handleOpenChange(false)
710 return () => handleOpenChange(false)
711 }, [parentMenuContext.open, handleOpenChange])
712
713 return (
714 <Popper>
715 <MenuContext.Provider
716 value={{
717 open,
718 onOpenChange: handleOpenChange,
719 content,
720 onContentChange: setContent,
721 }}
722 >
723 <MenuSubContext.Provider
724 value={{
725 contentId: useId(),
726 triggerId: useId(),
727 trigger,
728 onTriggerChange: setTrigger,
729 }}
730 >
731 {children}
732 </MenuSubContext.Provider>
733 </MenuContext.Provider>
734 </Popper>
735 )
736}
737
738MenuSub.displayName = SUB_NAME
739

Callers

nothing calls this directly

Calls 3

useCallbackRefFunction · 0.90
useIdFunction · 0.90
useMenuContextFunction · 0.85

Tested by

no test coverage detected