icon-text-button.tsx 754 B

1234567891011121314151617181920212223242526272829
  1. import MaterialIcon from '@/shared/components/material-icon'
  2. import { IconTextButtonProps } from '../types/icon-text-button-props'
  3. import Button from './button'
  4. export default function IconTextButton({
  5. children,
  6. className,
  7. leadingIcon,
  8. size = 'default',
  9. trailingIcon,
  10. ...props
  11. }: IconTextButtonProps) {
  12. const materialIconClassName =
  13. size === 'large'
  14. ? 'leading-trailing-icon-large'
  15. : 'leading-trailing-icon-small'
  16. return (
  17. <Button size={size} {...props}>
  18. {leadingIcon && (
  19. <MaterialIcon type={leadingIcon} className={materialIconClassName} />
  20. )}
  21. {children}
  22. {trailingIcon && (
  23. <MaterialIcon type={trailingIcon} className={materialIconClassName} />
  24. )}
  25. </Button>
  26. )
  27. }