From 094001f9f7ea8dea3c66f74110e2ca4159339199 Mon Sep 17 00:00:00 2001 From: xCyanGrizzly Date: Tue, 24 Mar 2026 16:19:40 +0100 Subject: [PATCH] feat: show file match count badge in search results Co-Authored-By: Claude Opus 4.6 (1M context) --- .../stls/_components/package-columns.tsx | 26 ++++++++++++++----- src/app/(app)/stls/_components/stl-table.tsx | 3 +++ src/app/(app)/stls/page.tsx | 1 + 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/app/(app)/stls/_components/package-columns.tsx b/src/app/(app)/stls/_components/package-columns.tsx index 5b1ef7c..00fea5e 100644 --- a/src/app/(app)/stls/_components/package-columns.tsx +++ b/src/app/(app)/stls/_components/package-columns.tsx @@ -23,12 +23,15 @@ export interface PackageRow { id: string; title: string; }; + matchedFileCount: number; + matchedByContent: boolean; } interface PackageColumnsProps { onViewFiles: (pkg: PackageRow) => void; onSetCreator: (pkg: PackageRow) => void; onSetTags: (pkg: PackageRow) => void; + searchTerm: string; } function formatBytes(bytesStr: string): string { @@ -62,6 +65,7 @@ export function getPackageColumns({ onViewFiles, onSetCreator, onSetTags, + searchTerm, }: PackageColumnsProps): ColumnDef[] { return [ { @@ -76,12 +80,22 @@ export function getPackageColumns({ accessorKey: "fileName", header: ({ column }) => , cell: ({ row }) => ( -
- {row.original.fileName} - {row.original.isMultipart && ( - - Multi - +
+
+ {row.original.fileName} + {row.original.isMultipart && ( + + Multi + + )} +
+ {searchTerm && row.original.matchedByContent && ( + )}
), diff --git a/src/app/(app)/stls/_components/stl-table.tsx b/src/app/(app)/stls/_components/stl-table.tsx index a947e10..980ed7c 100644 --- a/src/app/(app)/stls/_components/stl-table.tsx +++ b/src/app/(app)/stls/_components/stl-table.tsx @@ -29,6 +29,7 @@ interface StlTableProps { totalCount: number; ingestionStatus: IngestionAccountStatus[]; availableTags: string[]; + searchTerm: string; } export function StlTable({ @@ -37,6 +38,7 @@ export function StlTable({ totalCount, ingestionStatus, availableTags, + searchTerm, }: StlTableProps) { const router = useRouter(); const pathname = usePathname(); @@ -77,6 +79,7 @@ export function StlTable({ const columns = getPackageColumns({ onViewFiles: (pkg) => setViewPkg(pkg), + searchTerm, onSetCreator: (pkg) => { const value = prompt("Enter creator name:", pkg.creator ?? ""); if (value === null) return; diff --git a/src/app/(app)/stls/page.tsx b/src/app/(app)/stls/page.tsx index 314d001..eaf3154 100644 --- a/src/app/(app)/stls/page.tsx +++ b/src/app/(app)/stls/page.tsx @@ -49,6 +49,7 @@ export default async function StlFilesPage({ searchParams }: Props) { totalCount={result.pagination.total} ingestionStatus={ingestionStatus} availableTags={availableTags} + searchTerm={search} /> ); }