Files
yaak-mountain-loop/apps/yaak-client/hooks/useStateWithDeps.ts
2026-03-06 09:23:19 -08:00

15 lines
492 B
TypeScript

import type { DependencyList } from 'react';
import { useEffect, useState } from 'react';
/**
* Like useState, except it will update the value when the default value changes
*/
export function useStateWithDeps<T>(defaultValue: T | (() => T), deps: DependencyList) {
const [value, setValue] = useState(defaultValue);
// biome-ignore lint/correctness/useExhaustiveDependencies: none
useEffect(() => {
setValue(defaultValue);
}, [...deps]);
return [value, setValue] as const;
}