Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

left-header.tsx 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import React from 'react'
  2. import { RiArrowLeftLine } from '@remixicon/react'
  3. import Button from '@/app/components/base/button'
  4. import { useParams } from 'next/navigation'
  5. import Effect from '@/app/components/base/effect'
  6. import type { Step } from './step-indicator'
  7. import StepIndicator from './step-indicator'
  8. import Link from 'next/link'
  9. type LeftHeaderProps = {
  10. steps: Array<Step>
  11. title: string
  12. currentStep: number
  13. }
  14. const LeftHeader = ({
  15. steps,
  16. title,
  17. currentStep,
  18. }: LeftHeaderProps) => {
  19. const { datasetId } = useParams()
  20. return (
  21. <div className='relative flex flex-col gap-y-0.5 pb-2 pt-4'>
  22. <div className='flex items-center gap-x-2'>
  23. <span className='system-2xs-semibold-uppercase bg-pipeline-add-documents-title-bg bg-clip-text text-transparent'>
  24. {title}
  25. </span>
  26. <span className='system-2xs-regular text-divider-regular'>/</span>
  27. <StepIndicator steps={steps} currentStep={currentStep} />
  28. </div>
  29. <div className='system-md-semibold text-text-primary'>
  30. {steps[currentStep - 1]?.label}
  31. </div>
  32. {currentStep !== steps.length && (
  33. <Link
  34. href={`/datasets/${datasetId}/documents`}
  35. replace
  36. >
  37. <Button
  38. variant='secondary-accent'
  39. className='absolute -left-11 top-3.5 size-9 rounded-full p-0'
  40. >
  41. <RiArrowLeftLine className='size-5 ' />
  42. </Button>
  43. </Link>
  44. )}
  45. <Effect className='left-8 top-[-34px] opacity-20' />
  46. </div>
  47. )
  48. }
  49. export default React.memo(LeftHeader)