import { ProviderInteractionMode, RuntimeMode } from "@t3tools/contracts"; import { memo, type ReactNode } from "react"; import { EllipsisIcon, ListTodoIcon } from "lucide-react"; import { Button } from "../ui/button"; import { Menu, MenuItem, MenuPopup, MenuRadioGroup, MenuRadioItem, MenuSeparator as MenuDivider, MenuTrigger, } from "../ui/menu"; export const CompactComposerControlsMenu = memo(function CompactComposerControlsMenu(props: { activePlan: boolean; interactionMode: ProviderInteractionMode; planSidebarOpen: boolean; runtimeMode: RuntimeMode; traitsMenuContent?: ReactNode; onToggleInteractionMode: () => void; onTogglePlanSidebar: () => void; onToggleRuntimeMode: () => void; }) { return ( } > {props.traitsMenuContent ? ( <> {props.traitsMenuContent} ) : null}
Mode
{ if (!value || value === props.interactionMode) return; props.onToggleInteractionMode(); }} > Chat Plan
Access
{ if (!value || value === props.runtimeMode) return; props.onToggleRuntimeMode(); }} > Supervised Full access {props.activePlan ? ( <> {props.planSidebarOpen ? "Hide plan sidebar" : "Show plan sidebar"} ) : null}
); });