index.tsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. 'use client'
  2. import { useTranslation } from 'react-i18next'
  3. import { useRouter } from 'next/navigation'
  4. import cn from 'classnames'
  5. import s from './index.module.css'
  6. type IStepsNavBarProps = {
  7. step: number,
  8. datasetId?: string,
  9. }
  10. const StepsNavBar = ({
  11. step,
  12. datasetId,
  13. }: IStepsNavBarProps) => {
  14. const { t } = useTranslation()
  15. const router = useRouter()
  16. const navBackHandle = () => {
  17. if (!datasetId) {
  18. router.replace('/datasets')
  19. } else {
  20. router.replace(`/datasets/${datasetId}/documents`)
  21. }
  22. }
  23. return (
  24. <div className='w-full pt-4'>
  25. <div className={s.stepsHeader}>
  26. <div onClick={navBackHandle} className={s.navBack} />
  27. {!datasetId ? t('datasetCreation.steps.header.creation') : t('datasetCreation.steps.header.update')}
  28. </div>
  29. <div className={cn(s.stepList)}>
  30. <div className={cn(s.stepItem, s.step1, step === 1 && s.active, step !== 1 && s.done)}>
  31. <div className={cn(s.stepNum)}>{step === 1 ? 1 : ''}</div>
  32. <div className={cn(s.stepName)}>{t('datasetCreation.steps.one')}</div>
  33. </div>
  34. <div className={cn(s.stepItem, s.step2, step === 2 && s.active, step === 3 && s.done)}>
  35. <div className={cn(s.stepNum)}>{step !== 3 ? 2 : ''}</div>
  36. <div className={cn(s.stepName)}>{t('datasetCreation.steps.two')}</div>
  37. </div>
  38. <div className={cn(s.stepItem, s.step3, step === 3 && s.active)}>
  39. <div className={cn(s.stepNum)}>3</div>
  40. <div className={cn(s.stepName)}>{t('datasetCreation.steps.three')}</div>
  41. </div>
  42. </div>
  43. </div>
  44. )
  45. }
  46. export default StepsNavBar