import { cn } from "~/lib/utils";import { type TerminalContextDraft, formatTerminalContextLabel, isTerminalContextExpired,} from "~/lib/terminalContext";import { TerminalContextInlineChip } from "./TerminalContextInlineChip"; interface ComposerPendingTerminalContextsProps { contexts: ReadonlyArray<TerminalContextDraft>; className?: string;} interface ComposerPendingTerminalContextChipProps { context: TerminalContextDraft;} export function ComposerPendingTerminalContextChip({ context,}: ComposerPendingTerminalContextChipProps) { const label = formatTerminalContextLabel(context); const expired = isTerminalContextExpired(context); const tooltipText = expired ? `Terminal context expired. Remove and re-add ${label} to include it in your message.` : context.text; return <TerminalContextInlineChip label={label} tooltipText={tooltipText} expired={expired} />;} export function ComposerPendingTerminalContexts(props: ComposerPendingTerminalContextsProps) { const { contexts, className } = props; if (contexts.length === 0) { return null; } return ( <div className={cn("flex flex-wrap gap-1.5", className)}> {contexts.map((context) => ( <ComposerPendingTerminalContextChip key={context.id} context={context} /> ))} </div> );}
import { cn } from "~/lib/utils";
import {
type TerminalContextDraft,
formatTerminalContextLabel,
isTerminalContextExpired,
} from "~/lib/terminalContext";
import { TerminalContextInlineChip } from "./TerminalContextInlineChip";
interface ComposerPendingTerminalContextsProps {
contexts: ReadonlyArray<TerminalContextDraft>;
className?: string;
}
interface ComposerPendingTerminalContextChipProps {
context: TerminalContextDraft;
}
export function ComposerPendingTerminalContextChip({
context,
}: ComposerPendingTerminalContextChipProps) {
const label = formatTerminalContextLabel(context);
const expired = isTerminalContextExpired(context);
const tooltipText = expired
? `Terminal context expired. Remove and re-add ${label} to include it in your message.`
: context.text;
return <TerminalContextInlineChip label={label} tooltipText={tooltipText} expired={expired} />;
}
export function ComposerPendingTerminalContexts(props: ComposerPendingTerminalContextsProps) {
const { contexts, className } = props;
if (contexts.length === 0) {
return null;
}
return (
<div className={cn("flex flex-wrap gap-1.5", className)}>
{contexts.map((context) => (
<ComposerPendingTerminalContextChip key={context.id} context={context} />
))}
</div>
);
}