diff --git a/packages/web/hooks/useLinkedScroll.tsx b/packages/web/hooks/useLinkedScroll.tsx index 753c9b8ec..40e8ae317 100644 --- a/packages/web/hooks/useLinkedScroll.tsx +++ b/packages/web/hooks/useLinkedScroll.tsx @@ -34,13 +34,13 @@ export function useLinkedScroll< bottom: null as { _id: string; index: number } | null }); const containerRef = useRef(null); - const itemRefs = useRef<(HTMLElement | null)[]>([]); + const itemRefs = useRef>(new Map()); const scrollToItem = async (id: string, retry = 3) => { const itemIndex = dataList.findIndex((item) => item._id === id); if (itemIndex === -1) return; - const element = itemRefs.current[itemIndex]; + const element = itemRefs.current.get(id); if (!element || !containerRef.current) { if (retry > 0) { @@ -64,7 +64,8 @@ export function useLinkedScroll< let scroolSign = useRef(false); const { runAsync: loadInitData } = useRequest2( - async (scrollWhenFinish = true, refresh = false) => { + async ({ scrollWhenFinish, refresh } = { scrollWhenFinish: true, refresh: false }) => { + console.log('loadInitData', params); if (!currentData || isLoading) return; const item = dataList.find((item) => item._id === currentData.id); diff --git a/projects/app/src/components/core/chat/components/AIResponseBox.tsx b/projects/app/src/components/core/chat/components/AIResponseBox.tsx index 5b2055de4..81248a6d6 100644 --- a/projects/app/src/components/core/chat/components/AIResponseBox.tsx +++ b/projects/app/src/components/core/chat/components/AIResponseBox.tsx @@ -299,6 +299,7 @@ const RenderUserFormInteractive = React.memo(function RenderFormInput({ ; + quoteRefs: MutableRefObject>; quoteIndex: number; setQuoteIndex: Dispatch>; refreshList: () => void; @@ -45,7 +43,7 @@ const CollectionQuoteItem = ({ <> { - quoteRefs.current[index] = el; + quoteRefs.current.set(dataId, el); }} p={2} py={2} @@ -163,9 +161,7 @@ const CollectionQuoteItem = ({ '0px 1px 2px 0px rgba(19, 51, 107, 0.05), 0px 0px 1px 0px rgba(19, 51, 107, 0.08)' } cursor={'pointer'} - onClick={() => { - copyData(q + '\n' + a); - }} + onClick={() => copyData(`${q}${a ? '\n' + a : ''}`)} > diff --git a/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx b/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx index 7a02944e6..529b6436b 100644 --- a/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx +++ b/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx @@ -256,11 +256,10 @@ const CollectionReader = ({ {formatedDataList.map((item, index) => ( } + quoteRefs={itemRefs as React.MutableRefObject>} quoteIndex={item.quoteIndex} setQuoteIndex={setQuoteIndex} - refreshList={() => loadInitData(false, true)} + refreshList={() => loadInitData({ scrollWhenFinish: false, refresh: true })} updated={item.updated} isCurrentSelected={item.isCurrentSelected} q={item.q} diff --git a/projects/app/src/pageComponents/dataset/ApiDatasetForm.tsx b/projects/app/src/pageComponents/dataset/ApiDatasetForm.tsx index 37a9f62b6..6ece636e5 100644 --- a/projects/app/src/pageComponents/dataset/ApiDatasetForm.tsx +++ b/projects/app/src/pageComponents/dataset/ApiDatasetForm.tsx @@ -60,7 +60,7 @@ const ApiDatasetForm = ({