import { type FC, type InputHTMLAttributes, useState, useRef, useEffect } from 'react'
import { clx } from '../helpers/utils'
import Error from './Error'
import ColorfilterIcon from '@/assets/images/color.png'
type Props = {
label?: string
className?: string
error_text?: string
isNotRequired?: boolean
value?: string
onChange?: (value: string) => void
} & Omit, 'onChange' | 'value'>
const ColorPicker: FC = (props: Props) => {
const [color, setColor] = useState(props.value || '#000000')
const colorInputRef = useRef(null)
const inputClass = clx(
'w-full bg-white h-10 text-black block pl-10 pr-10 text-xs rounded-xl border border-border',
props.readOnly && 'bg-gray-100 border-0 text-description',
props.className
)
const handleColorChange = (event: React.ChangeEvent) => {
const newColor = event.target.value
setColor(newColor)
props.onChange?.(newColor)
}
const handleTextChange = (event: React.ChangeEvent) => {
const value = event.target.value
if (/^#[0-9A-Fa-f]{0,6}$/.test(value) || value === '') {
const finalColor = value || '#000000'
setColor(finalColor)
props.onChange?.(finalColor)
}
}
const handleColorIconClick = () => {
if (!props.readOnly) {
colorInputRef.current?.click()
}
}
useEffect(() => {
if (props.value !== undefined) {
setColor(props.value)
}
}, [props.value])
return (
)
}
export default ColorPicker