beta-badge.tsx 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import Tooltip from './tooltip'
  2. import { OverlayTriggerProps } from 'react-bootstrap'
  3. type TooltipProps = {
  4. id: string
  5. text: React.ReactNode
  6. placement?: OverlayTriggerProps['placement']
  7. className?: string
  8. }
  9. type BetaBadgeProps = {
  10. tooltip: TooltipProps
  11. url?: string
  12. phase?: string
  13. }
  14. function BetaBadge({
  15. tooltip,
  16. url = '/beta/participate',
  17. phase = 'beta',
  18. }: BetaBadgeProps) {
  19. let badgeClass
  20. switch (phase) {
  21. case 'release':
  22. badgeClass = 'info-badge'
  23. break
  24. default:
  25. badgeClass = 'beta-badge'
  26. }
  27. return (
  28. <Tooltip
  29. id={tooltip.id}
  30. description={tooltip.text}
  31. tooltipProps={{ className: tooltip.className }}
  32. overlayProps={{
  33. placement: tooltip.placement || 'bottom',
  34. delayHide: 100,
  35. }}
  36. >
  37. <a
  38. href={url}
  39. target="_blank"
  40. rel="noopener noreferrer"
  41. className={`badge ${badgeClass}`}
  42. >
  43. <span className="sr-only">{tooltip.text}</span>
  44. </a>
  45. </Tooltip>
  46. )
  47. }
  48. export default BetaBadge