| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | '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
 |