Skip to content

Commit 1f6f722

Browse files
feat: implement onDependenciesChange function to pass the test
1 parent 3589dd7 commit 1f6f722

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/index.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,21 @@ const useLifecycleHelpers = (state = {}, props = {}) => {
6363
callback,
6464
dependencies
6565
) => {
66+
const isFirstRender = useRef(true)
67+
const refsDependencies = dependencies.map(dep => state[dep])
6668

69+
useEffect(() => {
70+
if (isFirstRender.current) {
71+
isFirstRender.current = false
72+
} else {
73+
const prevDependenciesState = dependencies.map(dep => ({
74+
[dep]: prevState[dep]
75+
}))
76+
callback(Object.assign({}, ...prevDependenciesState))
77+
setPrevState(state)
78+
}
79+
// eslint-disable-next-line
80+
}, refsDependencies)
6781
}
6882

6983
/**

0 commit comments

Comments
 (0)