import { Maximize2Icon, Minimize2Icon, PanelBottomIcon, PanelRightIcon } from "lucide-react"; import { memo } from "react"; import { cn } from "~/lib/utils"; import { Toggle } from "../ui/toggle"; import { Tooltip, TooltipPopup, TooltipTrigger } from "../ui/tooltip"; interface PanelLayoutControlsProps { terminalAvailable: boolean; terminalOpen: boolean; terminalShortcutLabel: string | null; rightPanelAvailable: boolean; rightPanelOpen: boolean; rightPanelShortcutLabel: string | null; rightPanelMaximized: boolean; canMaximizeRightPanel: boolean; onToggleTerminal: () => void; onToggleRightPanel: () => void; onToggleRightPanelMaximized: () => void; } export const PanelLayoutControls = memo(function PanelLayoutControls({ terminalAvailable, terminalOpen, terminalShortcutLabel, rightPanelAvailable, rightPanelOpen, rightPanelShortcutLabel, rightPanelMaximized, canMaximizeRightPanel, onToggleTerminal, onToggleRightPanel, onToggleRightPanelMaximized, }: PanelLayoutControlsProps) { return (
{rightPanelOpen ? ( {rightPanelMaximized ? ( ) : ( )} } /> {canMaximizeRightPanel ? rightPanelMaximized ? "Restore panel size" : "Maximize panel" : "Panel maximization is unavailable at this width"} ) : null} } /> {terminalAvailable ? `Toggle terminal drawer${terminalShortcutLabel ? ` (${terminalShortcutLabel})` : ""}` : "Terminal drawer is unavailable"} } /> {rightPanelAvailable ? `Toggle right panel${rightPanelShortcutLabel ? ` (${rightPanelShortcutLabel})` : ""}` : "Right panel is unavailable"}
); });