import { useState, useRef } from "react"; import { useClickAway } from "react-use"; import Picker, { useColorPicker } from "react-best-gradient-color-picker"; import classNames from "classnames"; import ColorPickerIcon from "@/assets/images/color-picker.svg"; import { IconType } from "@/types/editor"; import Image from "next/image"; export const ColorPicker = ({ value, data, gradients = true, full = false, onChange, className, }: { value?: string; data?: any; gradients?: boolean; full?: boolean; onChange: (c: any, datas: any) => void; className?: string; }) => { const [open, setOpen] = useState(false); const ref = useRef(null); const [color, setColor] = useState(value ?? "#fff"); const { getGradientObject } = useColorPicker(color, setColor); useClickAway(ref, () => setOpen(false)); const renderBackground = (data: any) => { if (data?.gradient?.enabled) { if (data?.gradient?.type === "linearGradient") { return { background: `linear-gradient(${data?.gradient?.colours ?.map((e: any) => e.value) .join(", ")})`, }; } else { return { background: `radial-gradient(${data?.gradient?.colours ?.map((e: any) => e.value) .join(", ")})`, }; } } return { backgroundColor: data?.colour ?? data?.color ?? "#fff" }; }; return (