button.tsx 746 B

1234567891011121314151617181920212223242526272829303132
  1. import * as React from "react";
  2. import styles from "./button.module.scss";
  3. export function IconButton(props: {
  4. onClick?: () => void;
  5. icon: JSX.Element;
  6. text?: string;
  7. bordered?: boolean;
  8. shadow?: boolean;
  9. className?: string;
  10. title?: string;
  11. }) {
  12. return (
  13. <div
  14. className={
  15. styles["icon-button"] +
  16. ` ${props.bordered && styles.border} ${props.shadow && styles.shadow} ${
  17. props.className ?? ""
  18. } clickable`
  19. }
  20. onClick={props.onClick}
  21. title={props.title}
  22. role="button"
  23. >
  24. <div className={styles["icon-button-icon"]}>{props.icon}</div>
  25. {props.text && (
  26. <div className={styles["icon-button-text"]}>{props.text}</div>
  27. )}
  28. </div>
  29. );
  30. }