| 
                        12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | 
                        - 'use client'
 - import { useTranslation } from 'react-i18next'
 - import { useRouter } from 'next/navigation'
 - 
 - import { useCallback } from 'react'
 - import s from './index.module.css'
 - import cn from '@/utils/classnames'
 - import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints'
 - 
 - type IStepsNavBarProps = {
 -   step: number
 -   datasetId?: string
 - }
 - 
 - const STEP_T_MAP: Record<number, string> = {
 -   1: 'datasetCreation.steps.one',
 -   2: 'datasetCreation.steps.two',
 -   3: 'datasetCreation.steps.three',
 - }
 - 
 - const STEP_LIST = [1, 2, 3]
 - 
 - const StepsNavBar = ({
 -   step,
 -   datasetId,
 - }: IStepsNavBarProps) => {
 -   const { t } = useTranslation()
 -   const router = useRouter()
 - 
 -   const media = useBreakpoints()
 -   const isMobile = media === MediaType.mobile
 - 
 -   const navBackHandle = useCallback(() => {
 -     if (!datasetId)
 -       router.replace('/datasets')
 -     else
 -       router.replace(`/datasets/${datasetId}/documents`)
 -   }, [router, datasetId])
 - 
 -   return (
 -     <div className='w-full pt-4'>
 -       <div className={cn(s.stepsHeader, isMobile && '!px-0 justify-center')}>
 -         <div onClick={navBackHandle} className={cn(s.navBack, isMobile && '!mr-0')} />
 -         {!isMobile && (!datasetId ? t('datasetCreation.steps.header.creation') : t('datasetCreation.steps.header.update'))}
 -       </div>
 -       <div className={cn(s.stepList, isMobile && '!p-0')}>
 -         {STEP_LIST.map(item => (
 -           <div
 -             key={item}
 -             className={cn(s.stepItem, s[`step${item}`], step === item && s.active, step > item && s.done, isMobile && 'px-0')}
 -           >
 -             <div className={cn(s.stepNum)}>{step > item ? '' : item}</div>
 -             <div className={cn(s.stepName)}>{isMobile ? '' : t(STEP_T_MAP[item])}</div>
 -           </div>
 -         ))}
 -       </div>
 -     </div>
 -   )
 - }
 - 
 - export default StepsNavBar
 
 
  |