From 77950e48c76f4a3b29d01831d43039caba29888a Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期二, 18 十一月 2025 14:12:42 +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