From f6e23fbd65219a8792d49a06ac2a1930116a6a10 Mon Sep 17 00:00:00 2001 From: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> Date: Wed, 8 Feb 2023 11:51:19 +0530 Subject: [PATCH] [Bug]: Fixed app crashes when items dropped into container inside listview (#5449) * Fixed app crashes when items dropped into container inside listview * Fixes Link widget crash --- frontend/src/Editor/Box.jsx | 11 +++++++++-- frontend/src/Editor/Components/Link.jsx | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/frontend/src/Editor/Box.jsx b/frontend/src/Editor/Box.jsx index 21e44496df..6525ba358d 100644 --- a/frontend/src/Editor/Box.jsx +++ b/frontend/src/Editor/Box.jsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState, useMemo, useContext } from 'react'; +import React, { useEffect, useState, useMemo, useContext, useRef } from 'react'; import { Button } from './Components/Button'; import { Image } from './Components/Image'; import { Text } from './Components/Text'; @@ -196,6 +196,8 @@ export const Box = function Box({ const { variablesExposedForPreview, exposeToCodeHinter } = useContext(EditorContext) || {}; + const componentActions = useRef(new Set()); + useEffect(() => { const currentPage = currentState?.page; @@ -309,11 +311,16 @@ export const Box = function Box({ ) { if (!Object.keys(exposedVariables).includes(actionName)) { func.dependencies = dependencies; + componentActions.current.add(actionName); return onComponentOptionChanged(component, actionName, func); } else if (exposedVariables[actionName]?.dependencies?.length === 0) { return Promise.resolve(); - } else if (!_.isEqual(dependencies, exposedVariables[actionName]?.dependencies)) { + } else if ( + JSON.stringify(dependencies) !== JSON.stringify(exposedVariables[actionName]?.dependencies) || + !componentActions.current.has(actionName) + ) { func.dependencies = dependencies; + componentActions.current.add(actionName); return onComponentOptionChanged(component, actionName, func); } } diff --git a/frontend/src/Editor/Components/Link.jsx b/frontend/src/Editor/Components/Link.jsx index 9e47387072..79b7e61a11 100644 --- a/frontend/src/Editor/Components/Link.jsx +++ b/frontend/src/Editor/Components/Link.jsx @@ -16,7 +16,7 @@ export const Link = ({ height, properties, styles, fireEvent, registerAction, da async function () { clickRef.current.click(); }, - [clickRef] + [] ); return (