Merge pull request #1063 from JoeMakuta/optimize/memoize-chunk-card

refactor: memoize ChunkCard component for performance optimization
This commit is contained in:
Rohan Verma 2026-03-31 14:35:08 -07:00 committed by GitHub
commit 5ae5a671e7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -5,7 +5,7 @@ import { BookOpen, ChevronDown, ExternalLink, FileText, Hash, Sparkles, X } from
import { AnimatePresence, motion, useReducedMotion } from "motion/react";
import { useTranslations } from "next-intl";
import type React from "react";
import { forwardRef, type ReactNode, useCallback, useEffect, useRef, useState } from "react";
import { forwardRef, memo, type ReactNode, useCallback, useEffect, useRef, useState } from "react";
import { createPortal } from "react-dom";
import { MarkdownViewer } from "@/components/markdown-viewer";
import { Badge } from "@/components/ui/badge";
@ -55,7 +55,7 @@ interface ChunkCardProps {
disableLayoutAnimation?: boolean;
}
const ChunkCard = forwardRef<HTMLDivElement, ChunkCardProps>(
const ChunkCard = memo(forwardRef<HTMLDivElement, ChunkCardProps>(
({ chunk, index, totalChunks, isCited }, ref) => {
return (
<div
@ -101,7 +101,7 @@ const ChunkCard = forwardRef<HTMLDivElement, ChunkCardProps>(
</div>
);
}
);
));
ChunkCard.displayName = "ChunkCard";
export function SourceDetailPanel({