import React, { useState } from 'react'; import { EngineInterface } from '@aomao/engine'; import ColorPickerGroup, { ColorPickerGroupProps } from './group'; import Palette from './palette'; import ColorPickerItem from './item'; import './index.css'; export type ColorPickerProps = { engine: EngineInterface; colors?: Array>; defaultColor: string; defaultActiveColor: string; } & Omit; const ColorPicker: React.FC = ({ engine, colors, defaultActiveColor, defaultColor, onSelect, setStroke, }) => { const [active, setActive] = useState([defaultActiveColor]); if (!colors) colors = Palette.getColors(); const triggerSelect = (color: string, event: React.MouseEvent) => { setActive([color]); if (onSelect) onSelect(color, event); }; return (
{ if ('INPUT' !== (event.target as Element).tagName) { event.preventDefault(); } }} >
triggerSelect(defaultColor, event)} > {engine.language .get( 'toolbar', 'colorPicker', defaultColor === 'transparent' ? 'nonFillText' : 'defaultText', ) .toString()}
{colors.map((data, index) => { return ( ); })}
); }; export default ColorPicker; export { Palette };