From 081c68b01a04d4182a5ea229a88518ad91a036c6 Mon Sep 17 00:00:00 2001
From: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
Date: Wed, 27 Sep 2023 00:14:19 +0530
Subject: [PATCH] fix: memoize LayoutSystemBasedCanvas
---
app/client/src/layoutSystems/CanvasFactory.tsx | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/app/client/src/layoutSystems/CanvasFactory.tsx b/app/client/src/layoutSystems/CanvasFactory.tsx
index ddbf2288ef3..802cca07ae7 100644
--- a/app/client/src/layoutSystems/CanvasFactory.tsx
+++ b/app/client/src/layoutSystems/CanvasFactory.tsx
@@ -1,4 +1,4 @@
-import React, { useMemo } from "react";
+import React, { memo, useMemo } from "react";
import { useSelector } from "react-redux";
import {
getAppPositioningType,
@@ -15,7 +15,8 @@ import { getLayoutSystem } from "./withLayoutSystemWidgetHOC";
* Canvas also provides editing layout system specific editing experiences like Drag and Drop, Drag to Select, Widget Grouping, etc.
* This Component Hydrates canvas with enhanced properties from withWidgetProps and picks the layout system specific Canvas Implementation.
*/
-const LayoutSystemBasedCanvas = withWidgetProps(((props: WidgetProps) => {
+
+const LayoutSystemBasedCanvas = memo((props: WidgetProps) => {
const renderMode = useSelector(getRenderMode);
const appPositioningType = useSelector(getAppPositioningType);
const { canvasSystem } = useMemo(
@@ -29,8 +30,12 @@ const LayoutSystemBasedCanvas = withWidgetProps(((props: WidgetProps) => {
);
const { Canvas, propertyEnhancer } = canvasSystem;
return ;
-}) as any);
+});
+
+const HydratedLayoutSystemBasedCanvas = withWidgetProps(
+ LayoutSystemBasedCanvas as any,
+);
export const renderAppsmithCanvas = (props: WidgetProps) => {
- return ;
+ return ;
};