import { useState, useCallback } from "react"; export const useInput = (initialValue = "") => { const [inputValue, setInputValue] = useState(initialValue); const handleInputChange = useCallback((newValue: string) => { setInputValue(newValue); }, []); const handleSubmit = useCallback( (onSubmit?: (value: string) => void) => { if (inputValue.trim() && onSubmit) { onSubmit(inputValue.trim()); setInputValue(""); } }, [inputValue] ); const handleKeyPress = useCallback( (e: React.KeyboardEvent, onSubmit?: (value: string) => void) => { if (e.key === "Enter" && !e.shiftKey) { e.preventDefault(); handleSubmit(onSubmit); } }, [handleSubmit] ); const clearInput = useCallback(() => { setInputValue(""); }, []); const setInput = useCallback((value: string) => { setInputValue(value); }, []); return { inputValue, setInputValue, handleInputChange, handleSubmit, handleKeyPress, clearInput, setInput }; };