|  | @@ -1,12 +1,13 @@
 | 
	
		
			
				|  |  |  import type { FC } from 'react'
 | 
	
		
			
				|  |  | -import React, { useCallback, useMemo, useState } from 'react'
 | 
	
		
			
				|  |  | +import React, { useCallback, useEffect, useMemo, useState } from 'react'
 | 
	
		
			
				|  |  |  import useSWR from 'swr'
 | 
	
		
			
				|  |  |  import { useRouter } from 'next/navigation'
 | 
	
		
			
				|  |  |  import { useContext } from 'use-context-selector'
 | 
	
		
			
				|  |  |  import { useTranslation } from 'react-i18next'
 | 
	
		
			
				|  |  |  import { omit } from 'lodash-es'
 | 
	
		
			
				|  |  | -import cn from 'classnames'
 | 
	
		
			
				|  |  |  import { ArrowRightIcon } from '@heroicons/react/24/solid'
 | 
	
		
			
				|  |  | +import { useGetState } from 'ahooks'
 | 
	
		
			
				|  |  | +import cn from 'classnames'
 | 
	
		
			
				|  |  |  import SegmentCard from '../completed/SegmentCard'
 | 
	
		
			
				|  |  |  import { FieldInfo } from '../metadata'
 | 
	
		
			
				|  |  |  import style from '../completed/style.module.css'
 | 
	
	
		
			
				|  | @@ -19,7 +20,7 @@ import type { FullDocumentDetail, ProcessRuleResponse } from '@/models/datasets'
 | 
	
		
			
				|  |  |  import type { CommonResponse } from '@/models/common'
 | 
	
		
			
				|  |  |  import { asyncRunSafe } from '@/utils'
 | 
	
		
			
				|  |  |  import { formatNumber } from '@/utils/format'
 | 
	
		
			
				|  |  | -import { fetchIndexingEstimate, fetchProcessRule, pauseDocIndexing, resumeDocIndexing } from '@/service/datasets'
 | 
	
		
			
				|  |  | +import { fetchIndexingStatus as doFetchIndexingStatus, fetchIndexingEstimate, fetchProcessRule, pauseDocIndexing, resumeDocIndexing } from '@/service/datasets'
 | 
	
		
			
				|  |  |  import DatasetDetailContext from '@/context/dataset-detail'
 | 
	
		
			
				|  |  |  import StopEmbeddingModal from '@/app/components/datasets/create/stop-embedding-modal'
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -134,11 +135,15 @@ const EmbeddingDetail: FC<Props> = ({ detail, stopPosition = 'top', datasetId: d
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const [runId, setRunId, getRunId] = useGetState<any>(null)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  const stopQueryStatus = () => {
 | 
	
		
			
				|  |  | +    clearInterval(getRunId())
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    const startQueryStatus = () => {
 | 
	
		
			
				|  |  |      const runId = setInterval(() => {
 | 
	
		
			
				|  |  |        const indexingStatusDetail = getIndexingStatusDetail()
 | 
	
		
			
				|  |  |        if (indexingStatusDetail?.indexing_status === 'completed') {
 | 
	
		
			
				|  |  | -        // eslint-disable-next-line @typescript-eslint/no-use-before-define
 | 
	
		
			
				|  |  |          stopQueryStatus()
 | 
	
		
			
				|  |  |          return
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -146,9 +151,6 @@ const EmbeddingDetail: FC<Props> = ({ detail, stopPosition = 'top', datasetId: d
 | 
	
		
			
				|  |  |      }, 2500)
 | 
	
		
			
				|  |  |      setRunId(runId)
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  const stopQueryStatus = () => {
 | 
	
		
			
				|  |  | -    clearInterval(getRunId())
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    useEffect(() => {
 | 
	
		
			
				|  |  |      fetchIndexingStatus()
 | 
	
	
		
			
				|  | @@ -235,14 +237,15 @@ const EmbeddingDetail: FC<Props> = ({ detail, stopPosition = 'top', datasetId: d
 | 
	
		
			
				|  |  |            key={idx}
 | 
	
		
			
				|  |  |            className={cn(s.progressBgItem, isEmbedding ? 'bg-primary-50' : 'bg-gray-100')}
 | 
	
		
			
				|  |  |          />)}
 | 
	
		
			
				|  |  | -        <div className={
 | 
	
		
			
				|  |  | -          cn('rounded-l-md',
 | 
	
		
			
				|  |  | +        <div
 | 
	
		
			
				|  |  | +          className={cn(
 | 
	
		
			
				|  |  | +            'rounded-l-md',
 | 
	
		
			
				|  |  |              s.progressBar,
 | 
	
		
			
				|  |  |              (isEmbedding || isEmbeddingCompleted) && s.barProcessing,
 | 
	
		
			
				|  |  |              (isEmbeddingPaused || isEmbeddingError) && s.barPaused,
 | 
	
		
			
				|  |  | -            indexingStatusDetail?.indexing_status === 'completed' && 'rounded-r-md')
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        style={{ width: `${percent}%` }}
 | 
	
		
			
				|  |  | +            indexingStatusDetail?.indexing_status === 'completed' && 'rounded-r-md',
 | 
	
		
			
				|  |  | +          )}
 | 
	
		
			
				|  |  | +          style={{ width: `${percent}%` }}
 | 
	
		
			
				|  |  |          />
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  |        <div className={s.progressData}>
 |