Bin
2025-12-16 9e0b2ba2c317b1a86212f24cbae3195ad1f3dbfa
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)];
};