"use client"; import { useContext, useEffect } from "react"; import { SidebarContext } from "./Sidebar"; import React, { forwardRef, type JSX } from "react"; import { PopoverOpenContext } from "components/Popover/PopoverContext"; type ButtonProps = Omit; export const ActionButton = forwardRef< HTMLButtonElement, ButtonProps & { id?: string; icon: React.ReactNode; label: React.ReactNode; primary?: boolean; secondary?: boolean; nav?: boolean; className?: string; subtext?: string; labelOnMobile?: boolean; smallOnMobile?: boolean; z?: boolean; } >((_props, ref) => { let { id, icon, label, primary, secondary, nav, labelOnMobile, smallOnMobile, subtext, className, ...buttonProps } = _props; let sidebar = useContext(SidebarContext); let inOpenPopover = useContext(PopoverOpenContext); useEffect(() => { if (inOpenPopover) { sidebar.setChildForceOpen(true); return () => { sidebar.setChildForceOpen(false); }; } }, [sidebar, inOpenPopover]); let showLabelOnMobile = labelOnMobile !== false && (primary || secondary || nav); return ( ); }); ActionButton.displayName = "ActionButton";