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