a tool for shared writing and social publishing

add popoveropen context to menu component

+33 -29
+33 -29
components/Layout.tsx
··· 31 31 }} 32 32 open={props.open} 33 33 > 34 - <DropdownMenu.Trigger asChild={props.asChild}> 35 - {props.trigger} 36 - </DropdownMenu.Trigger> 37 - <DropdownMenu.Portal> 38 - <NestedCardThemeProvider> 39 - <DropdownMenu.Content 40 - align={props.align ? props.align : "center"} 41 - sideOffset={4} 42 - collisionPadding={16} 43 - className={`dropdownMenu z-20 bg-bg-page flex flex-col py-1 gap-0.5 border border-border rounded-md shadow-md ${props.className}`} 44 - > 45 - {props.children} 46 - <DropdownMenu.Arrow 47 - asChild 48 - width={16} 49 - height={8} 50 - viewBox="0 0 16 8" 34 + <PopoverOpenContext value={open}> 35 + <DropdownMenu.Trigger asChild={props.asChild}> 36 + {props.trigger} 37 + </DropdownMenu.Trigger> 38 + <DropdownMenu.Portal> 39 + <NestedCardThemeProvider> 40 + <DropdownMenu.Content 41 + align={props.align ? props.align : "center"} 42 + sideOffset={4} 43 + collisionPadding={16} 44 + className={`dropdownMenu z-20 bg-bg-page flex flex-col py-1 gap-0.5 border border-border rounded-md shadow-md ${props.className}`} 51 45 > 52 - <PopoverArrow 53 - arrowFill={ 54 - props.background ? props.background : theme.colors["bg-page"] 55 - } 56 - arrowStroke={ 57 - props.border ? props.border : theme.colors["border"] 58 - } 59 - /> 60 - </DropdownMenu.Arrow> 61 - </DropdownMenu.Content> 62 - </NestedCardThemeProvider> 63 - </DropdownMenu.Portal> 46 + {props.children} 47 + <DropdownMenu.Arrow 48 + asChild 49 + width={16} 50 + height={8} 51 + viewBox="0 0 16 8" 52 + > 53 + <PopoverArrow 54 + arrowFill={ 55 + props.background 56 + ? props.background 57 + : theme.colors["bg-page"] 58 + } 59 + arrowStroke={ 60 + props.border ? props.border : theme.colors["border"] 61 + } 62 + /> 63 + </DropdownMenu.Arrow> 64 + </DropdownMenu.Content> 65 + </NestedCardThemeProvider> 66 + </DropdownMenu.Portal> 67 + </PopoverOpenContext> 64 68 </DropdownMenu.Root> 65 69 ); 66 70 };