From a430284aa21e3ae1f0d5654e55b2ad2852519cc2 Mon Sep 17 00:00:00 2001
From: wwf <yearningwang@iqtogether.com>
Date: 星期三, 04 六月 2025 15:17:49 +0800
Subject: [PATCH] 初始化

---
 app/components/datasets/documents/detail/completed/index.tsx |   73 ++++++++++++++++++------------------
 1 files changed, 37 insertions(+), 36 deletions(-)

diff --git a/app/components/datasets/documents/detail/completed/index.tsx b/app/components/datasets/documents/detail/completed/index.tsx
index 4fe0df2..d4a4f03 100644
--- a/app/components/datasets/documents/detail/completed/index.tsx
+++ b/app/components/datasets/documents/detail/completed/index.tsx
@@ -46,7 +46,6 @@
   useUpdateSegment,
 } from '@/service/knowledge/use-segment'
 import { useInvalid } from '@/service/use-base'
-import { noop } from 'lodash-es'
 
 const DEFAULT_LIMIT = 10
 
@@ -72,7 +71,7 @@
 const SegmentListContext = createContext<SegmentListContextValue>({
   isCollapsed: true,
   fullScreen: false,
-  toggleFullScreen: noop,
+  toggleFullScreen: () => {},
   currSegment: { showModal: false },
   currChildChunk: { showModal: false },
 })
@@ -220,11 +219,13 @@
   const resetList = useCallback(() => {
     setSelectedSegmentIds([])
     invalidSegmentList()
-  }, [invalidSegmentList])
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [])
 
   const resetChildList = useCallback(() => {
     invalidChildSegmentList()
-  }, [invalidChildSegmentList])
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [])
 
   const onClickCard = (detail: SegmentDetailModel, isEditMode = false) => {
     setCurrSegment({ segInfo: detail, showModal: true, isEditMode })
@@ -251,7 +252,7 @@
   const invalidChunkListEnabled = useInvalid(useChunkListEnabledKey)
   const invalidChunkListDisabled = useInvalid(useChunkListDisabledKey)
 
-  const refreshChunkListWithStatusChanged = useCallback(() => {
+  const refreshChunkListWithStatusChanged = () => {
     switch (selectedStatus) {
       case 'all':
         invalidChunkListDisabled()
@@ -260,7 +261,7 @@
       default:
         invalidSegmentList()
     }
-  }, [selectedStatus, invalidChunkListDisabled, invalidChunkListEnabled, invalidSegmentList])
+  }
 
   const onChangeSwitch = useCallback(async (enable: boolean, segId?: string) => {
     const operationApi = enable ? enableSegment : disableSegment
@@ -278,7 +279,8 @@
         notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') })
       },
     })
-  }, [datasetId, documentId, selectedSegmentIds, segments, disableSegment, enableSegment, t, notify, refreshChunkListWithStatusChanged])
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [datasetId, documentId, selectedSegmentIds, segments])
 
   const { mutateAsync: deleteSegment } = useDeleteSegment()
 
@@ -293,11 +295,12 @@
         notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') })
       },
     })
-  }, [datasetId, documentId, selectedSegmentIds, deleteSegment, resetList, t, notify])
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [datasetId, documentId, selectedSegmentIds])
 
   const { mutateAsync: updateSegment } = useUpdateSegment()
 
-  const refreshChunkListDataWithDetailChanged = useCallback(() => {
+  const refreshChunkListDataWithDetailChanged = () => {
     switch (selectedStatus) {
       case 'all':
         invalidChunkListDisabled()
@@ -312,7 +315,7 @@
         invalidChunkListEnabled()
         break
     }
-  }, [selectedStatus, invalidChunkListDisabled, invalidChunkListEnabled, invalidChunkListAll])
+  }
 
   const handleUpdateSegment = useCallback(async (
     segmentId: string,
@@ -354,7 +357,6 @@
           if (seg.id === segmentId) {
             seg.answer = res.data.answer
             seg.content = res.data.content
-            seg.sign_content = res.data.sign_content
             seg.keywords = res.data.keywords
             seg.word_count = res.data.word_count
             seg.hit_count = res.data.hit_count
@@ -371,18 +373,17 @@
         eventEmitter?.emit('update-segment-done')
       },
     })
-  }, [segments, datasetId, documentId, updateSegment, docForm, notify, eventEmitter, onCloseSegmentDetail, refreshChunkListDataWithDetailChanged, t])
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [segments, datasetId, documentId])
 
   useEffect(() => {
     resetList()
-  // eslint-disable-next-line react-hooks/exhaustive-deps
   }, [pathname])
 
   useEffect(() => {
     if (importStatus === ProcessStatus.COMPLETED)
       resetList()
-  // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [importStatus])
+  }, [importStatus, resetList])
 
   const onCancelBatchOperation = useCallback(() => {
     setSelectedSegmentIds([])
@@ -408,9 +409,9 @@
     setSelectedSegmentIds((prev) => {
       const currentAllSegIds = segments.map(seg => seg.id)
       const prevSelectedIds = prev.filter(item => !currentAllSegIds.includes(item))
-      return [...prevSelectedIds, ...(isAllSelected ? [] : currentAllSegIds)]
+      return [...prevSelectedIds, ...((isAllSelected || selectedSegmentIds.length > 0) ? [] : currentAllSegIds)]
     })
-  }, [segments, isAllSelected])
+  }, [segments, isAllSelected, selectedSegmentIds])
 
   const totalText = useMemo(() => {
     const isSearch = searchValue !== '' || selectedStatus !== 'all'
@@ -427,7 +428,8 @@
       const count = segmentListData?.total || 0
       return `${total} ${t('datasetDocuments.segment.searchResults', { count })}`
     }
-  }, [segmentListData, mode, parentMode, searchValue, selectedStatus, t])
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [segmentListData?.total, mode, parentMode, searchValue, selectedStatus])
 
   const toggleFullScreen = useCallback(() => {
     setFullScreen(!fullScreen)
@@ -445,7 +447,8 @@
       resetList()
       currentPage !== totalPages && setCurrentPage(totalPages)
     }
-  }, [segmentListData, limit, currentPage, resetList])
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [segmentListData, limit, currentPage])
 
   const { mutateAsync: deleteChildSegment } = useDeleteChildSegment()
 
@@ -465,7 +468,8 @@
         },
       },
     )
-  }, [datasetId, documentId, parentMode, deleteChildSegment, resetList, resetChildList, t, notify])
+  // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [datasetId, documentId, parentMode])
 
   const handleAddNewChildChunk = useCallback((parentChunkId: string) => {
     setShowNewChildSegmentModal(true)
@@ -484,7 +488,8 @@
     else {
       resetChildList()
     }
-  }, [parentMode, currChunkId, segments, refreshChunkListDataWithDetailChanged, resetChildList])
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [parentMode, currChunkId, segments])
 
   const viewNewlyAddedChildChunk = useCallback(() => {
     const totalPages = childChunkListData?.total_pages || 0
@@ -498,7 +503,8 @@
       resetChildList()
       currentPage !== totalPages && setCurrentPage(totalPages)
     }
-  }, [childChunkListData, limit, currentPage, resetChildList])
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [childChunkListData, limit, currentPage])
 
   const onClickSlice = useCallback((detail: ChildChunkDetail) => {
     setCurrChildChunk({ childChunkInfo: detail, showModal: true })
@@ -552,7 +558,8 @@
         eventEmitter?.emit('update-child-segment-done')
       },
     })
-  }, [segments, datasetId, documentId, parentMode, updateChildSegment, notify, eventEmitter, onCloseChildSegmentDetail, refreshChunkListDataWithDetailChanged, resetChildList, t])
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [segments, childSegments, datasetId, documentId, parentMode])
 
   const onClearFilter = useCallback(() => {
     setInputValue('')
@@ -560,12 +567,6 @@
     setSelectedStatus('all')
     setCurrentPage(1)
   }, [])
-
-  const selectDefaultValue = useMemo(() => {
-    if (selectedStatus === 'all')
-      return 'all'
-    return selectedStatus ? 1 : 0
-  }, [selectedStatus])
 
   return (
     <SegmentListContext.Provider value={{
@@ -580,15 +581,15 @@
         <Checkbox
           className='shrink-0'
           checked={isAllSelected}
-          indeterminate={!isAllSelected && isSomeSelected}
+          mixed={!isAllSelected && isSomeSelected}
           onCheck={onSelectedAll}
           disabled={isLoadingSegmentList}
         />
-        <div className={'system-sm-semibold-uppercase flex-1 pl-5 text-text-secondary'}>{totalText}</div>
+        <div className={'system-sm-semibold-uppercase pl-5 text-text-secondary flex-1'}>{totalText}</div>
         <SimpleSelect
           onSelect={onChangeStatus}
           items={statusList.current}
-          defaultValue={selectDefaultValue}
+          defaultValue={selectedStatus === 'all' ? 'all' : selectedStatus ? 1 : 0}
           className={s.select}
           wrapperClassName='h-fit mr-2'
           optionWrapClassName='w-[160px]'
@@ -604,14 +605,14 @@
           onChange={e => handleInputChange(e.target.value)}
           onClear={() => handleInputChange('')}
         />
-        <Divider type='vertical' className='mx-3 h-3.5' />
+        <Divider type='vertical' className='h-3.5 mx-3' />
         <DisplayToggle isCollapsed={isCollapsed} toggleCollapsed={() => setIsCollapsed(!isCollapsed)} />
       </div>}
       {/* Segment list */}
       {
         isFullDocMode
           ? <div className={cn(
-            'flex grow flex-col overflow-x-hidden',
+            'flex flex-col grow overflow-x-hidden',
             (isLoadingSegmentList || isLoadingChildSegmentList) ? 'overflow-y-hidden' : 'overflow-y-auto',
           )}>
             <SegmentCard
@@ -655,7 +656,7 @@
           />
       }
       {/* Pagination */}
-      <Divider type='horizontal' className='mx-6 my-0 h-[1px] w-auto bg-divider-subtle' />
+      <Divider type='horizontal' className='w-auto h-[1px] my-0 mx-6 bg-divider-subtle' />
       <Pagination
         current={currentPage - 1}
         onChange={cur => setCurrentPage(cur + 1)}
@@ -721,7 +722,7 @@
       {/* Batch Action Buttons */}
       {selectedSegmentIds.length > 0
         && <BatchAction
-          className='absolute bottom-16 left-0 z-20'
+          className='absolute left-0 bottom-16 z-20'
           selectedIds={selectedSegmentIds}
           onBatchEnable={onChangeSwitch.bind(null, true, '')}
           onBatchDisable={onChangeSwitch.bind(null, false, '')}

--
Gitblit v1.8.0