From 5cc6a2bf335d685047155a9e592b22ba20f195a2 Mon Sep 17 00:00:00 2001 From: twwu Date: Tue, 17 Jun 2025 14:41:06 +0800 Subject: [PATCH] refactor: update toast notification handling and improve context usage in DocumentDetail --- .../datasets/documents/detail/index.tsx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/web/app/components/datasets/documents/detail/index.tsx b/web/app/components/datasets/documents/detail/index.tsx index bca54b62a4..533e1105d8 100644 --- a/web/app/components/datasets/documents/detail/index.tsx +++ b/web/app/components/datasets/documents/detail/index.tsx @@ -1,7 +1,7 @@ 'use client' import type { FC } from 'react' import React, { useMemo, useState } from 'react' -import { createContext, useContext, useContextSelector } from 'use-context-selector' +import { createContext, useContextSelector } from 'use-context-selector' import { useTranslation } from 'react-i18next' import { useRouter } from 'next/navigation' import { RiArrowLeftLine, RiLayoutLeft2Line, RiLayoutRight2Line } from '@remixicon/react' @@ -17,9 +17,9 @@ import style from './style.module.css' import cn from '@/utils/classnames' import Divider from '@/app/components/base/divider' import Loading from '@/app/components/base/loading' -import { ToastContext } from '@/app/components/base/toast' +import Toast from '@/app/components/base/toast' import type { ChunkingMode, ParentMode, ProcessMode } from '@/models/datasets' -import { useDatasetDetailContext } from '@/context/dataset-detail' +import { useDatasetDetailContextWithSelector } from '@/context/dataset-detail' import FloatRightContainer from '@/app/components/base/float-right-container' import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints' import { useCheckSegmentBatchImportProgress, useChildSegmentListKey, useSegmentBatchImport, useSegmentListKey } from '@/service/knowledge/use-segment' @@ -83,8 +83,7 @@ const DocumentDetail: FC = ({ datasetId, documentId }) => { const media = useBreakpoints() const isMobile = media === MediaType.mobile - const { notify } = useContext(ToastContext) - const { dataset } = useDatasetDetailContext() + const dataset = useDatasetDetailContextWithSelector(s => s.dataset) const embeddingAvailable = !!dataset?.embedding_available const [showMetadata, setShowMetadata] = useState(!isMobile) const [newSegmentModalVisible, setNewSegmentModalVisible] = useState(false) @@ -103,10 +102,10 @@ const DocumentDetail: FC = ({ datasetId, documentId }) => { if (res.job_status === ProcessStatus.WAITING || res.job_status === ProcessStatus.PROCESSING) setTimeout(() => checkProcess(res.job_id), 2500) if (res.job_status === ProcessStatus.ERROR) - notify({ type: 'error', message: `${t('datasetDocuments.list.batchModal.runError')}` }) + Toast.notify({ type: 'error', message: `${t('datasetDocuments.list.batchModal.runError')}` }) }, onError: (e) => { - notify({ type: 'error', message: `${t('datasetDocuments.list.batchModal.runError')}${'message' in e ? `: ${e.message}` : ''}` }) + Toast.notify({ type: 'error', message: `${t('datasetDocuments.list.batchModal.runError')}${'message' in e ? `: ${e.message}` : ''}` }) }, }) } @@ -124,7 +123,7 @@ const DocumentDetail: FC = ({ datasetId, documentId }) => { checkProcess(res.job_id) }, onError: (e) => { - notify({ type: 'error', message: `${t('datasetDocuments.list.batchModal.runError')}${'message' in e ? `: ${e.message}` : ''}` }) + Toast.notify({ type: 'error', message: `${t('datasetDocuments.list.batchModal.runError')}${'message' in e ? `: ${e.message}` : ''}` }) }, }) } @@ -171,12 +170,12 @@ const DocumentDetail: FC = ({ datasetId, documentId }) => { } const mode = useMemo(() => { - return documentDetail?.document_process_rule?.mode - }, [documentDetail?.document_process_rule]) + return documentDetail?.document_process_rule?.mode || documentDetail?.dataset_process_rule?.mode + }, [documentDetail?.document_process_rule?.mode, documentDetail?.dataset_process_rule?.mode]) const parentMode = useMemo(() => { - return documentDetail?.document_process_rule?.rules?.parent_mode - }, [documentDetail?.document_process_rule]) + return documentDetail?.document_process_rule?.rules?.parent_mode || documentDetail?.dataset_process_rule?.rules?.parent_mode || 'paragraph' + }, [documentDetail?.document_process_rule?.rules?.parent_mode, documentDetail?.dataset_process_rule?.rules?.parent_mode]) const isFullDocMode = useMemo(() => { return mode === 'hierarchical' && parentMode === 'full-doc' @@ -260,7 +259,8 @@ const DocumentDetail: FC = ({ datasetId, documentId }) => { {isDetailLoading ? :
{embedding ?