Files
ontime/apps/client/src/common/components/input/colour-input/Swatch.tsx
T
2025-10-07 12:32:12 +02:00

32 lines
816 B
TypeScript

import { MouseEvent } from 'react';
import { IoBan } from 'react-icons/io5';
import { cx } from '../../../utils/styleUtils';
import style from './SwatchSelect.module.scss';
interface SwatchProps {
color: string;
onClick?: (color: string) => void;
isSelected?: boolean;
}
export default function Swatch({ color, isSelected, onClick }: SwatchProps) {
const handleClick = (event: MouseEvent) => {
onClick?.(color);
event.preventDefault();
event.stopPropagation();
};
const classes = cx([style.swatch, isSelected && style.selected, onClick && style.selectable]);
if (!color) {
return (
<div className={classes} onClick={handleClick}>
<IoBan />
</div>
);
}
return <div className={classes} style={{ backgroundColor: `${color}` }} onClick={handleClick} />;
}