diff --git a/frontend/src/AppBuilder/AppCanvas/ConfigHandle/ConfigHandle.jsx b/frontend/src/AppBuilder/AppCanvas/ConfigHandle/ConfigHandle.jsx
index 4c558f3cc2..d877a3233f 100644
--- a/frontend/src/AppBuilder/AppCanvas/ConfigHandle/ConfigHandle.jsx
+++ b/frontend/src/AppBuilder/AppCanvas/ConfigHandle/ConfigHandle.jsx
@@ -45,7 +45,6 @@ export const ConfigHandle = ({
);
}, shallow);
let height = visibility === false ? 10 : widgetHeight;
-
return (
{
diff --git a/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx b/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx
index 1b4d1265dc..bbc10562a7 100644
--- a/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx
+++ b/frontend/src/AppBuilder/AppCanvas/Grid/Grid.jsx
@@ -65,6 +65,7 @@ export default function Grid({ gridWidth, currentLayout }) {
const prevDragParentId = useRef(null);
const newDragParentId = useRef(null);
const [isGroupDragging, setIsGroupDragging] = useState(false);
+ const checkIfAnyWidgetVisibilityChanged = useStore((state) => state.checkIfAnyWidgetVisibilityChanged(), shallow);
useEffect(() => {
const selectedSet = new Set(selectedComponents);
@@ -316,7 +317,7 @@ export default function Grid({ gridWidth, currentLayout }) {
useEffect(() => {
reloadGrid();
// eslint-disable-next-line react-hooks/exhaustive-deps
- }, [selectedComponents, openModalWidgetId, boxList, currentLayout]);
+ }, [selectedComponents, openModalWidgetId, boxList, currentLayout, checkIfAnyWidgetVisibilityChanged]);
const updateNewPosition = (events, parent = null) => {
const posWithParent = {
diff --git a/frontend/src/AppBuilder/AppCanvas/WidgetWrapper.jsx b/frontend/src/AppBuilder/AppCanvas/WidgetWrapper.jsx
index 0f1cb3359f..17add18947 100644
--- a/frontend/src/AppBuilder/AppCanvas/WidgetWrapper.jsx
+++ b/frontend/src/AppBuilder/AppCanvas/WidgetWrapper.jsx
@@ -37,6 +37,8 @@ const WidgetWrapper = memo(
});
const visibility = useStore((state) => {
const component = state.getResolvedComponent(id, subContainerIndex);
+ const componentExposedVisibility = state.getExposedValueOfComponent(id)?.isVisible;
+ if (componentExposedVisibility === false) return false;
if (component?.properties?.visibility === false || component?.styles?.visibility === false) return false;
return true;
});
@@ -60,9 +62,9 @@ const WidgetWrapper = memo(
<>
({
setLastCanvasClickPosition: (position) => {
set({ lastCanvasClickPosition: position });
},
+ checkIfAnyWidgetVisibilityChanged: () => {
+ // This is required to reload the grid if visibility is turned off using CSA
+ const { getExposedValueOfComponent, getCurrentPageComponents } = get();
+ const currentPageComponents = getCurrentPageComponents();
+
+ const visibilityState = {};
+
+ Object.keys(currentPageComponents).forEach((componentId) => {
+ const componentExposedVisibility = getExposedValueOfComponent(componentId)?.isVisible;
+
+ // Determine if component is visible
+ visibilityState[componentId] = !(componentExposedVisibility === false);
+ });
+
+ return visibilityState;
+ },
});