"use client"; import React, { useRef, useState } from "react"; import { formatHTML } from "../../utils/formatCode"; import { Bar, BarItem } from "../Bar"; import { Button } from "../Button"; import { Field } from "../Forms/Field"; import { Message } from "../Forms/Message"; import { TextInput } from "../Forms/TextInput"; import { Gauge } from "./Gauge"; const GaugeMaker: React.FC = () => { const [val, setVal] = useState(20); const [isSuccessMessageVisible, setIsSuccessMessageVisible] = useState(false); const [isErrorMessageVisible, setIsErrorMessageVisible] = useState(false); const gaugeRef = useRef(null); const updateGauge = (e: React.ChangeEvent) => { const value = parseInt(e.target.value, 10) || 0; if (value < 0 || value > 100) { setIsErrorMessageVisible(true); } else { setVal(value); setIsSuccessMessageVisible(false); setIsErrorMessageVisible(false); } }; const copy = ( e: React.FormEvent | React.MouseEvent, ) => { e.preventDefault(); if (gaugeRef.current) { navigator.clipboard.writeText(formatHTML(gaugeRef.current.outerHTML)); setIsSuccessMessageVisible(true); } }; return ( <>
( ), }} messages={[ ...(isErrorMessageVisible ? [ { type: "error", text: "Gauge can only display values between 0 and 100", }, ] : []), ]} />
); }; export default GaugeMaker;