diff --git a/frontend/src/app/knowledge/chunks/page.tsx b/frontend/src/app/knowledge/chunks/page.tsx index b59a8760..9a889dae 100644 --- a/frontend/src/app/knowledge/chunks/page.tsx +++ b/frontend/src/app/knowledge/chunks/page.tsx @@ -39,6 +39,9 @@ function ChunksPageContent() { const [chunksFilteredByQuery, setChunksFilteredByQuery] = useState< ChunkResult[] >([]); + const [selectedChunks, setSelectedChunks] = useState>(new Set()); + + // Calculate average chunk length const averageChunkLength = useMemo( () => chunks.reduce((acc, chunk) => acc + chunk.text.length, 0) / @@ -84,10 +87,34 @@ function ChunksPageContent() { setChunks(fileData?.chunks || []); }, [data, filename, fileData?.chunks]); + // Set selected state for all checkboxes when selectAll changes + useEffect(() => { + if (selectAll) { + setSelectedChunks(new Set(chunks.map((_, index) => index))); + } else { + setSelectedChunks(new Set()); + } + }, [selectAll, setSelectedChunks, chunks]); + const handleBack = useCallback(() => { - router.back(); + router.push("/knowledge"); }, [router]); + const handleChunkCardCheckboxChange = useCallback( + (index: number) => { + setSelectedChunks((prevSelected) => { + const newSelected = new Set(prevSelected); + if (newSelected.has(index)) { + newSelected.delete(index); + } else { + newSelected.add(index); + } + return newSelected; + }); + }, + [setSelectedChunks] + ); + if (!filename) { return (
@@ -134,11 +161,13 @@ function ChunksPageContent() { setSelectAll(checked === true)} + onCheckedChange={(handleSelectAll) => + setSelectAll(!!handleSelectAll) + } /> @@ -192,7 +221,10 @@ function ChunksPageContent() {
- + handleChunkCardCheckboxChange(index)} + />
Chunk {chunk.page} @@ -221,11 +253,9 @@ function ChunksPageContent() { Active */}
-
-
- {chunk.text} -
-
+
+ {chunk.text} +
))}
@@ -249,18 +279,17 @@ function ChunksPageContent() { {averageChunkLength.toFixed(0)} chars -
+ {/* TODO: Uncomment after data is available */} + {/*
Process time
- {/* {averageChunkLength.toFixed(0)} chars */}
Model
- {/* {averageChunkLength.toFixed(0)} chars */}
-
+
*/}
@@ -292,10 +321,11 @@ function ChunksPageContent() { N/A
-
+ {/* TODO: Uncomment after data is available */} + {/*
Source
-
+
*/}
Updated