import * as React from 'react'; import Input, { InputProps } from '@mui/joy/Input'; import Typography from '@mui/joy/Typography'; import Box from '@mui/joy/Box'; type DebounceProps = { handleDebounce: (value: string) => void; debounceTimeout: number; }; function DebounceInput(props: InputProps & DebounceProps) { const { handleDebounce, debounceTimeout, ...other } = props; const timerRef = React.useRef>(undefined); const handleChange = (event: React.ChangeEvent) => { clearTimeout(timerRef.current); timerRef.current = setTimeout(() => { handleDebounce(event.target.value); }, debounceTimeout); }; return ; } export default function DebouncedInput() { const [debouncedValue, setDebouncedValue] = React.useState(''); const handleDebounce = (value: string) => { setDebouncedValue(value); }; return ( Debounced input: {debouncedValue} ); }