Skip to content

Commit 686a1ab

Browse files
author
mpabarca
committed
Fix validation of update only new projects in Context using deep equality
1 parent 110da03 commit 686a1ab

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/features/projects/view/ProjectsContextProvider.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,16 @@ const ProjectsContextProvider = ({
1414
const [refreshed, setRefreshed] = useState<boolean>(false)
1515
const [projects, setProjects] = useState<Project[]>(initialProjects || [])
1616

17+
const hasProjectChanged = (value: Project[]) => value.some((project, index) => {
18+
// Compare by project id and version (or any other key fields)
19+
return project.id !== projects[index]?.id || project.versions !== projects[index]?.versions
20+
})
21+
1722
const setProjectsAndRefreshed = (value: Project[]) => {
1823
setProjects(value)
19-
// Only set refreshed to true after projects are updated
20-
if (JSON.stringify(projects) !== JSON.stringify(value)) setRefreshed(true)
24+
// If any project has changed, update the state and mark as refreshed
25+
if (hasProjectChanged(value)) setRefreshed(true)
26+
2127
}
2228
return (
2329
<ProjectsContext.Provider value={{

0 commit comments

Comments
 (0)