commit and make select work
This commit is contained in:
parent
8a17cccf3d
commit
70da229e40
1 changed files with 45 additions and 15 deletions
|
|
@ -39,6 +39,9 @@ function ChunksPageContent() {
|
||||||
const [chunksFilteredByQuery, setChunksFilteredByQuery] = useState<
|
const [chunksFilteredByQuery, setChunksFilteredByQuery] = useState<
|
||||||
ChunkResult[]
|
ChunkResult[]
|
||||||
>([]);
|
>([]);
|
||||||
|
const [selectedChunks, setSelectedChunks] = useState<Set<number>>(new Set());
|
||||||
|
|
||||||
|
// Calculate average chunk length
|
||||||
const averageChunkLength = useMemo(
|
const averageChunkLength = useMemo(
|
||||||
() =>
|
() =>
|
||||||
chunks.reduce((acc, chunk) => acc + chunk.text.length, 0) /
|
chunks.reduce((acc, chunk) => acc + chunk.text.length, 0) /
|
||||||
|
|
@ -84,10 +87,34 @@ function ChunksPageContent() {
|
||||||
setChunks(fileData?.chunks || []);
|
setChunks(fileData?.chunks || []);
|
||||||
}, [data, filename, 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(() => {
|
const handleBack = useCallback(() => {
|
||||||
router.back();
|
router.push("/knowledge");
|
||||||
}, [router]);
|
}, [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) {
|
if (!filename) {
|
||||||
return (
|
return (
|
||||||
<div className="flex items-center justify-center h-64">
|
<div className="flex items-center justify-center h-64">
|
||||||
|
|
@ -134,11 +161,13 @@ function ChunksPageContent() {
|
||||||
<Checkbox
|
<Checkbox
|
||||||
id="selectAllChunks"
|
id="selectAllChunks"
|
||||||
checked={selectAll}
|
checked={selectAll}
|
||||||
onCheckedChange={(checked) => setSelectAll(checked === true)}
|
onCheckedChange={(handleSelectAll) =>
|
||||||
|
setSelectAll(!!handleSelectAll)
|
||||||
|
}
|
||||||
/>
|
/>
|
||||||
<Label
|
<Label
|
||||||
htmlFor="selectAllChunks"
|
htmlFor="selectAllChunks"
|
||||||
className="font-medium text-muted-foreground whitespace-nowrap"
|
className="font-medium text-muted-foreground whitespace-nowrap cursor-pointer"
|
||||||
>
|
>
|
||||||
Select all
|
Select all
|
||||||
</Label>
|
</Label>
|
||||||
|
|
@ -192,7 +221,10 @@ function ChunksPageContent() {
|
||||||
<div className="flex items-center justify-between mb-2">
|
<div className="flex items-center justify-between mb-2">
|
||||||
<div className="flex items-center gap-3">
|
<div className="flex items-center gap-3">
|
||||||
<div>
|
<div>
|
||||||
<Checkbox />
|
<Checkbox
|
||||||
|
checked={selectedChunks.has(index)}
|
||||||
|
onClick={() => handleChunkCardCheckboxChange(index)}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<span className="text-sm text-bold">
|
<span className="text-sm text-bold">
|
||||||
Chunk {chunk.page}
|
Chunk {chunk.page}
|
||||||
|
|
@ -221,11 +253,9 @@ function ChunksPageContent() {
|
||||||
Active
|
Active
|
||||||
</span> */}
|
</span> */}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<blockquote className="text-sm text-muted-foreground leading-relaxed border-l-2 border-input ml-1.5 pl-4">
|
||||||
<blockquote className="text-sm text-muted-foreground leading-relaxed border-l-2 border-color-input ml-1.5 pl-4">
|
{chunk.text}
|
||||||
{chunk.text}
|
</blockquote>
|
||||||
</blockquote>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -249,18 +279,17 @@ function ChunksPageContent() {
|
||||||
{averageChunkLength.toFixed(0)} chars
|
{averageChunkLength.toFixed(0)} chars
|
||||||
</dd>
|
</dd>
|
||||||
</div>
|
</div>
|
||||||
<div className="sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 mb-2.5">
|
{/* TODO: Uncomment after data is available */}
|
||||||
|
{/* <div className="sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 mb-2.5">
|
||||||
<dt className="text-sm/6 text-muted-foreground">Process time</dt>
|
<dt className="text-sm/6 text-muted-foreground">Process time</dt>
|
||||||
<dd className="mt-1 text-sm/6 text-gray-100 sm:col-span-2 sm:mt-0">
|
<dd className="mt-1 text-sm/6 text-gray-100 sm:col-span-2 sm:mt-0">
|
||||||
{/* {averageChunkLength.toFixed(0)} chars */}
|
|
||||||
</dd>
|
</dd>
|
||||||
</div>
|
</div>
|
||||||
<div className="sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 mb-2.5">
|
<div className="sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 mb-2.5">
|
||||||
<dt className="text-sm/6 text-muted-foreground">Model</dt>
|
<dt className="text-sm/6 text-muted-foreground">Model</dt>
|
||||||
<dd className="mt-1 text-sm/6 text-gray-100 sm:col-span-2 sm:mt-0">
|
<dd className="mt-1 text-sm/6 text-gray-100 sm:col-span-2 sm:mt-0">
|
||||||
{/* {averageChunkLength.toFixed(0)} chars */}
|
|
||||||
</dd>
|
</dd>
|
||||||
</div>
|
</div> */}
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
<div className="mb-8">
|
<div className="mb-8">
|
||||||
|
|
@ -292,10 +321,11 @@ function ChunksPageContent() {
|
||||||
N/A
|
N/A
|
||||||
</dd>
|
</dd>
|
||||||
</div>
|
</div>
|
||||||
<div className="sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 mb-2.5">
|
{/* TODO: Uncomment after data is available */}
|
||||||
|
{/* <div className="sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 mb-2.5">
|
||||||
<dt className="text-sm/6 text-muted-foreground">Source</dt>
|
<dt className="text-sm/6 text-muted-foreground">Source</dt>
|
||||||
<dd className="mt-1 text-sm/6 text-gray-100 sm:col-span-2 sm:mt-0"></dd>
|
<dd className="mt-1 text-sm/6 text-gray-100 sm:col-span-2 sm:mt-0"></dd>
|
||||||
</div>
|
</div> */}
|
||||||
<div className="sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 mb-2.5">
|
<div className="sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 mb-2.5">
|
||||||
<dt className="text-sm/6 text-muted-foreground">Updated</dt>
|
<dt className="text-sm/6 text-muted-foreground">Updated</dt>
|
||||||
<dd className="mt-1 text-sm/6 text-gray-100 sm:col-span-2 sm:mt-0">
|
<dd className="mt-1 text-sm/6 text-gray-100 sm:col-span-2 sm:mt-0">
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue