import reactCSS from './helpers/reactcss'; import { Swatch } from './common'; import { PresetColors, ColorPickerType } from '.'; export type SketchPresetColorValue = string | { hex: string; source: string }; const prefixCls = 'zent-color-picker'; export interface ISketchPresetColors { colors: PresetColors; onClick( color: SketchPresetColorValue, e?: React.MouseEvent ): any; type: ColorPickerType; } const SketchPresetColors = ({ colors, onClick, type }: ISketchPresetColors) => { const styles: any = reactCSS( { default: { colors: { margin: '0 -10px', padding: '10px 0 0 10px', borderTop: '1px solid #eee', display: 'flex', flexWrap: 'wrap', position: 'relative', }, swatchWrap: { width: '16px', height: '16px', margin: '0 10px 10px 0', }, swatch: { borderRadius: '3px', boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)', }, }, 'no-presets': { colors: { display: 'none', }, }, }, { 'no-presets': !colors || !colors.length, } ); const handleClick = (hex, e) => { onClick( { hex, source: 'hex', }, e ); }; if (type === 'simple') { return (
{colors.map(color => (
onClick(color)} title={color} /> ))}
); } return (
{colors.map(colorObjOrString => { const c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString; return (
); })}
); }; export default SketchPresetColors;