import type { HsbaColorType } from '@rc-component/color-picker'; import RcColorPicker from '@rc-component/color-picker'; import type { FC } from 'react'; import React from 'react'; import Divider from '../divider'; import type { Color } from './color'; import ColorClear from './components/ColorClear'; import ColorInput from './components/ColorInput'; import ColorPresets from './components/ColorPresets'; import type { ColorPickerBaseProps } from './interface'; interface ColorPickerPanelProps extends ColorPickerBaseProps { onChange?: (value?: Color, type?: HsbaColorType, pickColor?: boolean) => void; onChangeComplete?: (type?: HsbaColorType) => void; onClear?: (clear?: boolean) => void; } const ColorPickerPanel: FC = (props) => { const { prefixCls, allowClear, presets, onChange, onClear, onChangeComplete, color, ...injectProps } = props; const colorPickerPanelPrefixCls = `${prefixCls}-inner-panel`; const extraPanelRender = (panel: React.ReactNode) => (
{allowClear && ( { onChange?.(clearColor); onClear?.(true); }} {...injectProps} /> )} {panel} {Array.isArray(presets) && ( <> )}
); return ( onChange?.(colorValue, type, true)} panelRender={extraPanelRender} onChangeComplete={onChangeComplete} /> ); }; if (process.env.NODE_ENV !== 'production') { ColorPickerPanel.displayName = 'ColorPickerPanel'; } export default ColorPickerPanel;