import { Maximize2Icon, Minimize2Icon, PanelBottomIcon, PanelRightIcon, XIcon } from "lucide-react"; import { memo } from "react"; import { Button } from "../ui/button"; 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; onToggleTerminal: () => void; onToggleRightPanel: () => void; } export const PanelLayoutControls = memo(function PanelLayoutControls({ terminalAvailable, terminalOpen, terminalShortcutLabel, rightPanelAvailable, rightPanelOpen, rightPanelShortcutLabel, onToggleTerminal, onToggleRightPanel, }: PanelLayoutControlsProps) { return (
} /> {terminalAvailable ? `Toggle terminal drawer${terminalShortcutLabel ? ` (${terminalShortcutLabel})` : ""}` : "Terminal drawer is unavailable"} } /> {rightPanelAvailable ? `Toggle right panel${rightPanelShortcutLabel ? ` (${rightPanelShortcutLabel})` : ""}` : "Right panel is unavailable"}
); }); export const RightPanelMaximizeControl = memo(function RightPanelMaximizeControl({ maximized, onToggle, }: { maximized: boolean; onToggle: () => void; }) { const label = maximized ? "Restore panel size" : "Maximize panel"; return ( {maximized ? ( ) : ( )} } /> {label} ); }); export const RightPanelCloseControl = memo(function RightPanelCloseControl({ onClose, }: { onClose: () => void; }) { return ( } /> Close right panel ); });