Total Complexity | 1 |
Complexity/F | 0 |
Lines of Code | 27 |
Function Count | 0 |
Duplicated Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | import { useRef, useMemo } from "react"; |
||
2 | |||
3 | const compareInputs = (inputKeys, oldInputs, newInputs) => { |
||
4 | inputKeys.forEach(key => { |
||
5 | const oldInput = oldInputs[key]; |
||
6 | const newInput = newInputs[key]; |
||
7 | if (oldInput !== newInput) { |
||
8 | console.log("change detected", key, "old:", oldInput, "new:", newInput); |
||
9 | } |
||
10 | }); |
||
11 | }; |
||
12 | |||
13 | const useDependenciesDebugger = inputs => { |
||
14 | const oldInputsRef = useRef(inputs); |
||
15 | const inputValuesArray = Object.values(inputs); |
||
16 | const inputKeysArray = Object.keys(inputs); |
||
17 | useMemo(() => { |
||
18 | const oldInputs = oldInputsRef.current; |
||
19 | |||
20 | compareInputs(inputKeysArray, oldInputs, inputs); |
||
21 | |||
22 | oldInputsRef.current = inputs; |
||
23 | }, inputValuesArray); // eslint-disable-line react-hooks/exhaustive-deps |
||
24 | }; |
||
25 | |||
26 | export default useDependenciesDebugger; |
||
27 |