import { Input } from "antd"; import { useEffect, useState, useRef } from "react"; const InputNumber = ({ name, value = 0, onChange, ...props }) => { const [inputValue, setInputValue] = useState( value !== null && value !== undefined ? value.toString() : '' ); useEffect(() => { const newValue = value !== null && value !== undefined ? value.toString() : ''; setInputValue(newValue); }, [value]); const handleChange = (e) => { const rawValue = e.target.value; if (/^\d*$/.test(rawValue)) { setInputValue(rawValue); const numValue = rawValue === '' ? 0 : parseInt(rawValue, 10); // Kirim event object sintetis yang konsisten dengan handler biasa onChange?.({ target: { name: name, value: numValue } }); } }; const handleFocus = (e) => { // Pilih semua teks saat fokus (opsional) e.target.select(); }; return ( ); }; export { InputNumber };