import { useEffect, useState } from "react"; // react-hook-form import { Controller, useForm } from "react-hook-form"; // ui import { ProgressBar } from "components/ui"; // types import { Props } from "./types"; export const CustomNumberAttribute: React.FC = ({ attributeDetails, onChange, value, }) => { const [isEditing, setIsEditing] = useState(false); const { control, handleSubmit, reset, setFocus } = useForm({ defaultValues: { number: "" } }); const handleFormSubmit = (data: { number: string }) => { setIsEditing(false); onChange(data.number); }; useEffect(() => { if (isEditing) { setFocus("number"); } }, [isEditing, setFocus]); useEffect(() => { reset({ number: value?.toString() }); }, [reset, value]); useEffect(() => { const handleEscKeyPress = (e: KeyboardEvent) => { if (e.key === "Escape") setIsEditing(false); }; document.addEventListener("keydown", handleEscKeyPress); return () => { document.removeEventListener("keydown", handleEscKeyPress); }; }, []); const extraSettings = attributeDetails.extra_settings; return (
{!isEditing && (
setIsEditing(true)}> {value ? ( <> {extraSettings?.representation === "bar" ? (
{extraSettings?.show_number && ( {value} )}
) : extraSettings?.representation === "ring" ? (
{extraSettings?.show_number && ( {value} )}
) : ( {value} )} ) : ( "Empty" )}
)} {isEditing && (
( )} /> )}
); };