import React, { useCallback, useEffect, useState } from "react" import { SketchPicker } from 'react-color' import style from './index.less' type props = { onColor: (color: string) => void, defaultColor?: string, value?: string, } const ColorPicker = (props: props) => { let { onColor, defaultColor = "#000000", value } = props const [displayColorPicker, setDisplayColorPicker] = useState(false) const [color, setColor] = useState(defaultColor) const handleClick = useCallback(() => { setDisplayColorPicker(!displayColorPicker) }, []) const handleClose = useCallback(() => { setDisplayColorPicker(false) }, []) const handleChange = useCallback((e: any) => { setColor(e.hex) onColor(e.hex) }, [color]) useEffect(() => { onColor(color) }, []) useEffect(() => { if (value) { setColor(value) onColor(value) } }, [value]) return <>
{ displayColorPicker ?
: null }
} export default React.memo(ColorPicker)