onChange будет вызываться с задержкой в 600мс, а если за это время будет нажата клавиша, то таймер будет обнулен и запущен заново
useEffect(() => {
const intervalId: TimeoutID = setTimeout(() => {
onChange(internalValue);
}, 600);
return () => {
clearInterval(intervalId);
};
}, [internalValue]);