How would you implement a search with useTransition?

Here is an example of how to implement a search where each handleSearch is a heavy function

But you want users to see a smooth UI

function SearchComponent() {
const [query, setQuery] = useState('');
const [results, setResults] = useState([]);
const [isPending, startTransition] = useTransition();

const handleSearch = (e) => {
// Urgent update - update input immediately
setQuery(e.target.value);

// Wrap expensive search in transition
startTransition(() => {
const searchResults = expensiveSearch(e.target.value);
setResults(searchResults);
});
};

return (
<div>
<input value={query} onChange={handleSearch} />
{isPending ? (
<div>Loading...</div>
) : (
<SearchResults results={results} />
)}
</div>
);
}