beta-badge-icon.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import type { FC } from 'react'
  2. import MaterialIcon from '@/shared/components/material-icon'
  3. import OLBadge from '@/shared/components/ol/ol-badge'
  4. const BetaBadgeIcon: FC<{
  5. phase?: string
  6. }> = ({ phase = 'beta' }) => {
  7. const badgeClass = chooseBadgeClass(phase)
  8. if (badgeClass === 'info-badge') {
  9. return <MaterialIcon type="info" className="align-middle info-badge" />
  10. } else if (badgeClass === 'alpha-badge') {
  11. return (
  12. <OLBadge bg="primary" className="alpha-badge">
  13. α
  14. </OLBadge>
  15. )
  16. } else if (badgeClass === 'labs-badge') {
  17. return <MaterialIcon type="science" className="align-middle labs-badge" />
  18. } else {
  19. return (
  20. <OLBadge className="beta-badge" bg="beta">
  21. β
  22. </OLBadge>
  23. )
  24. }
  25. }
  26. function chooseBadgeClass(phase?: string) {
  27. switch (phase) {
  28. case 'labs':
  29. return 'labs-badge'
  30. case 'release':
  31. return 'info-badge'
  32. case 'alpha':
  33. return 'alpha-badge'
  34. case 'beta':
  35. default:
  36. return 'beta-badge'
  37. }
  38. }
  39. export default BetaBadgeIcon