PenModeButton.tsx 1000 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import "./ToolIcon.scss";
  2. import clsx from "clsx";
  3. import { ToolButtonSize } from "./ToolButton";
  4. import { PenModeIcon } from "./icons";
  5. type PenModeIconProps = {
  6. title?: string;
  7. name?: string;
  8. checked: boolean;
  9. onChange?(): void;
  10. zenModeEnabled?: boolean;
  11. isMobile?: boolean;
  12. penDetected: boolean;
  13. };
  14. const DEFAULT_SIZE: ToolButtonSize = "medium";
  15. export const PenModeButton = (props: PenModeIconProps) => {
  16. if (!props.penDetected) {
  17. return null;
  18. }
  19. return (
  20. <label
  21. className={clsx(
  22. "ToolIcon ToolIcon__penMode",
  23. `ToolIcon_size_${DEFAULT_SIZE}`,
  24. {
  25. "is-mobile": props.isMobile,
  26. },
  27. )}
  28. title={`${props.title}`}
  29. >
  30. <input
  31. className="ToolIcon_type_checkbox"
  32. type="checkbox"
  33. name={props.name}
  34. onChange={props.onChange}
  35. checked={props.checked}
  36. aria-label={props.title}
  37. />
  38. <div className="ToolIcon__icon">{PenModeIcon}</div>
  39. </label>
  40. );
  41. };