Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 768x 768x 768x 1890x | import { useMemo } from "react";
/**
* Compares initial and current form values to determine if there are unsaved changes.
* Uses shallow comparison — suitable for flat form state (strings, numbers, booleans).
*/
export function useUnsavedChanges<T extends Record<string, unknown>>(
initialValues: T,
currentValues: T,
): boolean {
return useMemo(() => {
const keys = Object.keys(initialValues);
return keys.some(
(key) => initialValues[key] !== currentValues[key],
);
}, [initialValues, currentValues]);
}
|