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.

index.tsx 1.3KB

12345678910111213141516171819202122232425262728293031
  1. 'use client'
  2. import { LicenseStatus } from '@/types/feature'
  3. import { useTranslation } from 'react-i18next'
  4. import dayjs from 'dayjs'
  5. import PremiumBadge from '../../base/premium-badge'
  6. import { RiHourglass2Fill } from '@remixicon/react'
  7. import { useGlobalPublicStore } from '@/context/global-public-context'
  8. const LicenseNav = () => {
  9. const { t } = useTranslation()
  10. const { systemFeatures } = useGlobalPublicStore()
  11. if (systemFeatures.license?.status === LicenseStatus.EXPIRING) {
  12. const expiredAt = systemFeatures.license?.expired_at
  13. const count = dayjs(expiredAt).diff(dayjs(), 'days')
  14. return <PremiumBadge color='orange' className='select-none'>
  15. <RiHourglass2Fill className='flex size-3 items-center pl-0.5 text-components-premium-badge-indigo-text-stop-0' />
  16. {count <= 1 && <span className='system-xs-medium px-0.5'>{t('common.license.expiring', { count })}</span>}
  17. {count > 1 && <span className='system-xs-medium px-0.5'>{t('common.license.expiring_plural', { count })}</span>}
  18. </PremiumBadge>
  19. }
  20. if (systemFeatures.license.status === LicenseStatus.ACTIVE) {
  21. return <PremiumBadge color="indigo" className='select-none'>
  22. <span className='system-xs-medium px-1'>Enterprise</span>
  23. </PremiumBadge>
  24. }
  25. return null
  26. }
  27. export default LicenseNav