badge-link.tsx 696 B

12345678910111213141516171819202122232425262728293031
  1. import classNames from 'classnames'
  2. import type { MergeAndOverride } from '../../../../../types/utils'
  3. import Badge, { type BadgeProps } from './badge'
  4. export type BadgeLinkProps = MergeAndOverride<
  5. BadgeProps,
  6. {
  7. href: string
  8. badgeContentRef?: React.RefObject<HTMLElement>
  9. badgeLinkClasses?: string
  10. }
  11. >
  12. function BadgeLink({
  13. href,
  14. badgeLinkClasses,
  15. children,
  16. ...badgeProps
  17. }: BadgeLinkProps) {
  18. const containerClass = classNames(badgeLinkClasses, 'badge-link', {
  19. [`badge-link-${badgeProps.bg}`]: badgeProps.bg,
  20. })
  21. return (
  22. <a className={containerClass} href={href}>
  23. <Badge {...badgeProps}>{children}</Badge>
  24. </a>
  25. )
  26. }
  27. export default BadgeLink