import { BareIconButton, Button, SortableItemHandle, Tooltip, TooltipContent, TooltipTrigger } from "@tutti-os/ui-system"; import { DeleteIcon, EditIcon, GripVerticalIcon } from "@tutti-os/ui-system/icons"; import type { AgentHostQuickPrompt } from "../../../../host/agentHostApi"; import type { AgentQuickPromptLibraryController } from "./useAgentQuickPromptLibrary"; import { usePrimaryPointerAction } from "./usePrimaryPointerAction"; export function AgentQuickPromptRow({ handleRef, isSorting, labels, onDelete, onEdit, onFocusNext, onSelect, pending, prompt, reorderDisabled, selectionRef, showReorderHandle }: { handleRef: (node: HTMLButtonElement | null) => void; isSorting: boolean; labels: AgentQuickPromptLibraryController["labels"]; onDelete: () => void; onEdit: () => void; onFocusNext: (offset: number) => void; onSelect: () => void; pending: boolean; prompt: AgentHostQuickPrompt; reorderDisabled: boolean; selectionRef: (node: HTMLButtonElement | null) => void; showReorderHandle: boolean; }): React.JSX.Element { const selectionAction = usePrimaryPointerAction(onSelect); const editAction = usePrimaryPointerAction(onEdit); const deleteAction = usePrimaryPointerAction(onDelete); const actionRevealClass = "opacity-100 transition-opacity [@media(hover:hover)]:opacity-0 [@media(hover:hover)]:group-hover/quick-prompt-row:opacity-100 group-has-[:focus-visible]/quick-prompt-row:opacity-100 focus-visible:opacity-100"; const promptContent = ( {prompt.title} {prompt.content} ); return (
{showReorderHandle ? (
{labels.dragHandle(prompt.title)}
) : null} {isSorting ? (
{promptContent}
) : ( )} {!isSorting ? ( <> {labels.edit} {labels.delete} ) : null}
); }