diff --git a/src/components/Dashboard/common/ObjectSelect.jsx b/src/components/Dashboard/common/ObjectSelect.jsx
index 33f1e94..1999dea 100644
--- a/src/components/Dashboard/common/ObjectSelect.jsx
+++ b/src/components/Dashboard/common/ObjectSelect.jsx
@@ -1,4 +1,11 @@
-import { useEffect, useState, useContext, useCallback, useMemo } from 'react'
+import {
+ useEffect,
+ useState,
+ useContext,
+ useCallback,
+ useMemo,
+ useRef
+} from 'react'
import PropTypes from 'prop-types'
import { TreeSelect, Space, Button, Input } from 'antd'
import ReloadIcon from '../../Icons/ReloadIcon'
@@ -72,14 +79,16 @@ const ObjectSelect = ({
})
return {
title: (
-
+
+
+
),
value: object._id,
key: object._id,
@@ -199,7 +208,7 @@ const ObjectSelect = ({
return prev
})
}
- }, [objectPropertiesTree, properties, type, buildTreeData])
+ }, [objectPropertiesTree, properties, buildTreeData])
useEffect(() => {
if (value && typeof value === 'object' && value !== null && !initialized) {
@@ -236,6 +245,24 @@ const ObjectSelect = ({
token
])
+ const prevValuesRef = useRef({ type, masterFilter })
+
+ useEffect(() => {
+ const prevValues = prevValuesRef.current
+
+ // Deep comparison for objects, simple comparison for primitives
+ const hasChanged =
+ prevValues.type !== type ||
+ JSON.stringify(prevValues.masterFilter) !== JSON.stringify(masterFilter)
+
+ if (hasChanged) {
+ setObjectPropertiesTree({})
+ setTreeData([])
+ setInitialized(false)
+ prevValuesRef.current = { type, masterFilter }
+ }
+ }, [type, masterFilter])
+
// --- Error UI ---
if (error) {
return (