diff --git a/src/components/Dashboard/common/ObjectForm.jsx b/src/components/Dashboard/common/ObjectForm.jsx index 3948e3b..ec0d21c 100644 --- a/src/components/Dashboard/common/ObjectForm.jsx +++ b/src/components/Dashboard/common/ObjectForm.jsx @@ -95,7 +95,6 @@ const ObjectForm = forwardRef( const [fetchLoading, setFetchLoading] = useState(true) const [editLoading, setEditLoading] = useState(false) const [activities, setActivities] = useState([]) - const [initialized, setInitialized] = useState(false) const [isEditing, setIsEditing] = useState(false) const isEditingRef = useRef(false) const [formValid, setFormValid] = useState(false) @@ -194,6 +193,7 @@ const ObjectForm = forwardRef( const currentClearObjectActivityRef = useRef(clearObjectActivity) const currentHasFilePropertiesRef = useRef(hasFileProperties) const currentFlushOrphanFilesRef = useRef(flushOrphanFiles) + const fetchedObjectRef = useRef(null) // Update refs when values change useEffect(() => { @@ -488,11 +488,22 @@ const ObjectForm = forwardRef( }, [activities, id, notifyActivityState, handleEditingConflict]) useEffect(() => { - if (connected == true && initialized == false && id && token != null) { - setInitialized(true) - handleFetchObject() + if (connected !== true || !id || token == null) { + return } - }, [id, initialized, handleFetchObject, token, connected]) + + const objectKey = `${type}:${id}` + if (fetchedObjectRef.current === objectKey) { + return + } + + fetchedObjectRef.current = objectKey + setIsEditing(false) + isEditingRef.current = false + setActivities([]) + form.resetFields() + handleFetchObject() + }, [id, type, token, connected, handleFetchObject, form]) useEffect(() => { if (!id) {