diff options
| author | kj_sh604 | 2026-03-15 16:19:35 -0400 |
|---|---|---|
| committer | kj_sh604 | 2026-03-15 16:19:35 -0400 |
| commit | 6ec259a0e71174651bae95d4628138bf6fd68742 (patch) | |
| tree | 5e33c6a5ec091ecabfcb257fdc7b6a88ed8754ac /packages/excalidraw/components/ButtonIcon.tsx | |
| parent | 16c8578b15c727f22921f8a80a56ee4d4e7f2272 (diff) | |
refactor: packages/
Diffstat (limited to 'packages/excalidraw/components/ButtonIcon.tsx')
| -rw-r--r-- | packages/excalidraw/components/ButtonIcon.tsx | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/packages/excalidraw/components/ButtonIcon.tsx b/packages/excalidraw/components/ButtonIcon.tsx new file mode 100644 index 0000000..cbbd73d --- /dev/null +++ b/packages/excalidraw/components/ButtonIcon.tsx @@ -0,0 +1,37 @@ +import { forwardRef } from "react"; +import type { JSX } from "react"; +import clsx from "clsx"; + +import "./ButtonIcon.scss"; + +interface ButtonIconProps { + icon: JSX.Element; + title: string; + className?: string; + testId?: string; + /** if not supplied, defaults to value identity check */ + active?: boolean; + /** include standalone style (could interfere with parent styles) */ + standalone?: boolean; + onClick: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void; +} + +export const ButtonIcon = forwardRef<HTMLButtonElement, ButtonIconProps>( + (props, ref) => { + const { title, className, testId, active, standalone, icon, onClick } = + props; + return ( + <button + type="button" + ref={ref} + key={title} + title={title} + data-testid={testId} + className={clsx(className, { standalone, active })} + onClick={onClick} + > + {icon} + </button> + ); + }, +); |
