/** * MentionedFileItem - Single mentioned file item display. */ import React from 'react'; import { CopyablePath } from '@renderer/components/common/CopyablePath'; import { resolveAbsolutePath, shortenDisplayPath } from '@renderer/utils/pathDisplay'; import { File } from 'lucide-react'; import { formatTokens } from '../utils/formatting'; import type { MentionedFileInjection } from '@renderer/types/contextInjection'; interface MentionedFileItemProps { injection: MentionedFileInjection; projectRoot?: string; onNavigateToTurn?: (turnIndex: number) => void; } export const MentionedFileItem = ({ injection, projectRoot, onNavigateToTurn, }: Readonly): React.ReactElement => { const turnIndex = injection.firstSeenTurnIndex; const isClickable = onNavigateToTurn && turnIndex >= 0; const displayPath = shortenDisplayPath(injection.path, projectRoot); const absolutePath = resolveAbsolutePath(injection.path, projectRoot); return (
{!injection.exists && ( missing )}
~{formatTokens(injection.estimatedTokens)} tokens {isClickable ? ( onNavigateToTurn(turnIndex)} onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { onNavigateToTurn(turnIndex); } }} > @Turn {turnIndex + 1} ) : ( @Turn {turnIndex + 1} )}
); };