diff --git a/services/web/frontend/js/features/ide-react/context/metadata-context.tsx b/services/web/frontend/js/features/ide-react/context/metadata-context.tsx index 2e7f666a42..6a5303ea0d 100644 --- a/services/web/frontend/js/features/ide-react/context/metadata-context.tsx +++ b/services/web/frontend/js/features/ide-react/context/metadata-context.tsx @@ -184,6 +184,12 @@ export const MetadataProvider: FC = ({ children }) => { useEventListener('editor:metadata-outdated', handleMetadataOutdated) + const permissionsRef = useRef(permissions) + + useEffect(() => { + permissionsRef.current = permissions + }, [permissions]) + useEffect(() => { const handleProjectJoined = ({ detail: [{ project }], @@ -195,7 +201,7 @@ export const MetadataProvider: FC = ({ children }) => { ) } window.setTimeout(() => { - if (permissions.write) { + if (permissionsRef.current.write) { loadProjectMetaFromServer() } }, 200) @@ -206,13 +212,7 @@ export const MetadataProvider: FC = ({ children }) => { return () => { eventEmitter.off('project:joined', handleProjectJoined) } - }, [ - eventEmitter, - loadProjectMetaFromServer, - permissions, - showGenericMessageModal, - t, - ]) + }, [eventEmitter, loadProjectMetaFromServer, showGenericMessageModal, t]) const value = useMemo( () => ({