diff --git a/src/visualBuilder/components/FieldLocationAppList.tsx b/src/visualBuilder/components/FieldLocationAppList.tsx index b5bdba63..c9630717 100644 --- a/src/visualBuilder/components/FieldLocationAppList.tsx +++ b/src/visualBuilder/components/FieldLocationAppList.tsx @@ -4,6 +4,7 @@ import { VisualBuilderPostMessageEvents } from "../utils/types/postMessage.types import visualBuilderPostMessage from "../utils/visualBuilderPostMessage"; import { visualBuilderStyles } from "../visualBuilder.style"; import classNames from "classnames"; +import { CslpData } from "../../utils/cslpdata"; interface App { app_installation_uid: string; @@ -30,6 +31,9 @@ interface FieldLocationAppListProps { apps: App[]; position: "left" | "right"; toolbarRef: React.RefObject; + domEditStack:CslpData[] + setDisplayAllApps: (displayAllApps: boolean) => void; + displayAllApps: boolean; } const normalize = (text: string) => @@ -42,6 +46,8 @@ export const FieldLocationAppList = ({ apps, position, toolbarRef, + domEditStack, + setDisplayAllApps, }: FieldLocationAppListProps) => { const remainingApps = apps.filter((app, index) => index !== 0); const [search, setSearch] = useState(""); @@ -63,8 +69,10 @@ export const FieldLocationAppList = ({ { app: app, position: toolbarRef.current?.getBoundingClientRect(), + DomEditStack:domEditStack } ); + setDisplayAllApps(false); }; return ( diff --git a/src/visualBuilder/components/FieldLocationIcon.tsx b/src/visualBuilder/components/FieldLocationIcon.tsx index c8719102..0c8b9fee 100644 --- a/src/visualBuilder/components/FieldLocationIcon.tsx +++ b/src/visualBuilder/components/FieldLocationIcon.tsx @@ -32,6 +32,7 @@ export const FieldLocationIcon = ({ visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FIELD_LOCATION_SELECTED_APP, { app, position: toolbarRef.current?.getBoundingClientRect(), + DomEditStack:fieldLocationData.DomEditStack }); }; diff --git a/src/visualBuilder/components/FieldToolbar.tsx b/src/visualBuilder/components/FieldToolbar.tsx index 1ce33de6..b477320f 100644 --- a/src/visualBuilder/components/FieldToolbar.tsx +++ b/src/visualBuilder/components/FieldToolbar.tsx @@ -579,6 +579,9 @@ function FieldToolbarComponent( toolbarRef={toolbarRef} apps={fieldLocationData?.apps || ([] as any[])} position={appListPosition} + domEditStack={fieldLocationData.DomEditStack} + setDisplayAllApps={setDisplayAllApps} + displayAllApps={displayAllApps} /> )} diff --git a/src/visualBuilder/components/__test__/FieldLocationAppList.test.tsx b/src/visualBuilder/components/__test__/FieldLocationAppList.test.tsx index c2da1ef0..4c158351 100644 --- a/src/visualBuilder/components/__test__/FieldLocationAppList.test.tsx +++ b/src/visualBuilder/components/__test__/FieldLocationAppList.test.tsx @@ -145,7 +145,8 @@ describe("FieldLocationAppList", () => { }); it("should send event when app is clicked", () => { - render(); + const mockSetDisplayAllApps = vi.fn(); + render(); const secondApp = screen.getByText("Second App"); fireEvent.click(secondApp); @@ -153,9 +154,20 @@ describe("FieldLocationAppList", () => { expect(visualBuilderPostMessage?.send).toHaveBeenCalledWith("field-location-selected-app", { app: mockApps[1], position: { top: 0, left: 0, right: 100, bottom: 50, width: 100, height: 50, x: 0, y: 0 }, + DomEditStack: [] }); }); + it("should close the app list when an app is selected", () => { + const mockSetDisplayAllApps = vi.fn(); + render(); + + const secondApp = screen.getByText("Second App"); + fireEvent.click(secondApp); + + expect(mockSetDisplayAllApps).toHaveBeenCalledWith(false); + }); +