import { useLingui } from "@lingui/react/macro"; import type { Bot } from "@rakazo/contracts"; import { Popover, PopoverContent, PopoverTrigger, Wordmark } from "@rakazo/ui-web"; import { Bell } from "lucide-react"; import { WindowChrome } from "../WindowChrome"; import { BotCreatePicker } from "./bot-picker"; /** Window chrome, wordmark, the activity toggle and the create menu atop the sidebar. */ export function SidebarHeader({ activityMode, onToggleActivityMode, createMenuOpen, onCreateMenuOpenChange, onCloseMobileSidebar, bots, onCreateBot, onOpenBot, onCreateGroup, onCreateSpace, onShowGroupInfo, onShowSpaceInfo, }: { activityMode: boolean; onToggleActivityMode: () => void; createMenuOpen: boolean; onCreateMenuOpenChange: (open: boolean) => void; onCloseMobileSidebar: () => void; bots: Bot[]; onCreateBot: () => void; onOpenBot: (id: string) => void; onCreateGroup: () => void; onCreateSpace: () => void; onShowGroupInfo: () => void; onShowSpaceInfo: () => void; }) { const { t } = useLingui(); return (
+ {/* Unmount with the state change so the panel it opens never coexists with the menu. */} {createMenuOpen ? ( { onCreateMenuOpenChange(false); onCloseMobileSidebar(); onCreateBot(); }} onOpenBot={(id) => { onCreateMenuOpenChange(false); onCloseMobileSidebar(); onOpenBot(id); }} onCreateGroup={() => { onCreateMenuOpenChange(false); onCloseMobileSidebar(); onCreateGroup(); }} onCreateSpace={() => { onCreateMenuOpenChange(false); onCloseMobileSidebar(); onCreateSpace(); }} onShowGroupInfo={() => { onCreateMenuOpenChange(false); onCloseMobileSidebar(); onShowGroupInfo(); }} onShowSpaceInfo={() => { onCreateMenuOpenChange(false); onCloseMobileSidebar(); onShowSpaceInfo(); }} /> ) : null}
); }