footer.tsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import React, { type FC } from 'react'
  2. import Button from '../../button'
  3. import { type DatePickerFooterProps, ViewType } from '../types'
  4. import { RiTimeLine } from '@remixicon/react'
  5. import cn from '@/utils/classnames'
  6. import { useTranslation } from 'react-i18next'
  7. const Footer: FC<DatePickerFooterProps> = ({
  8. needTimePicker,
  9. displayTime,
  10. view,
  11. handleClickTimePicker,
  12. handleSelectCurrentDate,
  13. handleConfirmDate,
  14. }) => {
  15. const { t } = useTranslation()
  16. return (
  17. <div className={cn(
  18. 'flex justify-between items-center p-2 border-t-[0.5px] border-divider-regular',
  19. !needTimePicker && 'justify-end',
  20. )}>
  21. {/* Time Picker */}
  22. {needTimePicker && (
  23. <button
  24. type='button'
  25. className='flex items-center rounded-md px-1.5 py-1 gap-x-[1px] border-[0.5px] border-components-button-secondary-border system-xs-medium
  26. bg-components-button-secondary-bg shadow-xs shadow-shadow-shadow-3 backdrop-blur-[5px] text-components-button-secondary-accent-text'
  27. onClick={handleClickTimePicker}
  28. >
  29. <RiTimeLine className='w-3.5 h-3.5' />
  30. {view === ViewType.date && <span>{displayTime}</span>}
  31. {view === ViewType.time && <span>{t('time.operation.pickDate')}</span>}
  32. </button>
  33. )}
  34. <div className='flex items-center gap-x-1'>
  35. {/* Now */}
  36. <button
  37. type='button'
  38. className='flex items-center justify-center px-1.5 py-1 text-components-button-secondary-accent-text system-xs-medium'
  39. onClick={handleSelectCurrentDate}
  40. >
  41. <span className='px-[3px]'>{t('time.operation.now')}</span>
  42. </button>
  43. {/* Confirm Button */}
  44. <Button
  45. variant='primary'
  46. size='small'
  47. className='w-16 px-1.5 py-1'
  48. onClick={handleConfirmDate}
  49. >
  50. {t('time.operation.ok')}
  51. </Button>
  52. </div>
  53. </div>
  54. )
  55. }
  56. export default React.memo(Footer)