1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| import { useEffect, useMemo, useState } from "react";
|
| export const useValueTracker = <T = any>(
| value?: T | undefined,
| defaultValue?: T | undefined,
| ): [T | string, (value: T) => void] => {
| const initialValue = useMemo(() => {
| return value ?? defaultValue ?? "";
| }, [value, defaultValue]);
|
| const [finalValue, setValue] = useState<T | "">(initialValue);
|
| useEffect(() => {
| setValue(initialValue);
| }, [initialValue]);
|
| return [finalValue, (value: T) => setValue(value)];
| };
|
|