blob: 59ae0dfb541176378ddd34250d206f7104d52b9e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import { useEffect, useState } from 'react';
/**
* Use React useState hook and update it if initial data change.
*
* @param initial - The initial value.
* @returns The state and a setter.
*/
export const useStateChange = <T,>(initial: T) => {
const [state, setState] = useState<T>(initial);
useEffect(() => {
setState(initial);
}, [initial]);
return [state, setState] as const;
};
|