diff --git a/web/app/components/datasets/documents/detail/completed/common/regeneration-modal.tsx b/web/app/components/datasets/documents/detail/completed/common/regeneration-modal.tsx index 95bb339db9..f90fd7ac60 100644 --- a/web/app/components/datasets/documents/detail/completed/common/regeneration-modal.tsx +++ b/web/app/components/datasets/documents/detail/completed/common/regeneration-modal.tsx @@ -121,7 +121,7 @@ const RegenerationModal: FC = ({ }) return ( - + {!loading && !updateSucceeded && } {loading && !updateSucceeded && } {!loading && updateSucceeded && } diff --git a/web/app/components/datasets/documents/detail/completed/index.tsx b/web/app/components/datasets/documents/detail/completed/index.tsx index 8fa167f976..09c63d54a1 100644 --- a/web/app/components/datasets/documents/detail/completed/index.tsx +++ b/web/app/components/datasets/documents/detail/completed/index.tsx @@ -124,6 +124,7 @@ const Completed: FC = ({ const [limit, setLimit] = useState(DEFAULT_LIMIT) const [fullScreen, setFullScreen] = useState(false) const [showNewChildSegmentModal, setShowNewChildSegmentModal] = useState(false) + const [isRegenerationModalOpen, setIsRegenerationModalOpen] = useState(false) const segmentListRef = useRef(null) const childSegmentListRef = useRef(null) @@ -669,6 +670,7 @@ const Completed: FC = ({ onClose={onCloseSegmentDetail} showOverlay={false} needCheckChunks + modal={isRegenerationModalOpen} > = ({ isEditMode={currSegment.isEditMode} onUpdate={handleUpdateSegment} onCancel={onCloseSegmentDetail} + onModalStateChange={setIsRegenerationModalOpen} /> {/* Create New Segment */} diff --git a/web/app/components/datasets/documents/detail/completed/segment-detail.tsx b/web/app/components/datasets/documents/detail/completed/segment-detail.tsx index bbd9df1adc..5e5ae6b485 100644 --- a/web/app/components/datasets/documents/detail/completed/segment-detail.tsx +++ b/web/app/components/datasets/documents/detail/completed/segment-detail.tsx @@ -27,6 +27,7 @@ type ISegmentDetailProps = { onCancel: () => void isEditMode?: boolean docForm: ChunkingMode + onModalStateChange?: (isOpen: boolean) => void } /** @@ -38,6 +39,7 @@ const SegmentDetail: FC = ({ onCancel, isEditMode, docForm, + onModalStateChange, }) => { const { t } = useTranslation() const [question, setQuestion] = useState(isEditMode ? segInfo?.content || '' : segInfo?.sign_content || '') @@ -68,11 +70,19 @@ const SegmentDetail: FC = ({ const handleRegeneration = useCallback(() => { setShowRegenerationModal(true) - }, []) + onModalStateChange?.(true) + }, [onModalStateChange]) const onCancelRegeneration = useCallback(() => { setShowRegenerationModal(false) - }, []) + onModalStateChange?.(false) + }, [onModalStateChange]) + + const onCloseAfterRegeneration = useCallback(() => { + setShowRegenerationModal(false) + onModalStateChange?.(false) + onCancel() // Close the edit drawer + }, [onCancel, onModalStateChange]) const onConfirmRegeneration = useCallback(() => { onUpdate(segInfo?.id || '', question, answer, keywords, true) @@ -161,7 +171,7 @@ const SegmentDetail: FC = ({ isShow={showRegenerationModal} onConfirm={onConfirmRegeneration} onCancel={onCancelRegeneration} - onClose={onCancelRegeneration} + onClose={onCloseAfterRegeneration} /> ) }