Update selected item color in Pass menu
[ProtonMail-WebClient.git] / packages / pass / hooks / useDebouncedValue.ts
blobd0f8276f5e42a5e66387a74444d74f28629cdc3c
1 import { useCallback, useEffect, useState } from 'react';
3 import _debounce from '@proton/utils/debounce';
5 export const useDebouncedValue = <T extends string | number>(valueIn: T, time: number): T => {
6     const [valueOut, setValueOut] = useState(valueIn);
7     const debounce = useCallback(
8         _debounce((value) => setValueOut(value), time, { leading: true }),
9         [time]
10     );
11     useEffect(() => debounce(valueIn), [valueIn]);
12     useEffect(() => () => debounce.cancel(), []);
13     return valueOut;