diff --git a/frontend/src/AppBuilder/AppCanvas/appCanvasUtils.js b/frontend/src/AppBuilder/AppCanvas/appCanvasUtils.js index 69809f0bff..fd706e7cb1 100644 --- a/frontend/src/AppBuilder/AppCanvas/appCanvasUtils.js +++ b/frontend/src/AppBuilder/AppCanvas/appCanvasUtils.js @@ -262,7 +262,7 @@ export const copyComponents = ({ isCut = false, isCloning = false }) => { for (let selectedComponent of filteredSelectedComponents) { if (addedComponentId.has(selectedComponent.id)) continue; - const events = useStore.getState().eventsSlice.geEventsByComponentsId(selectedComponent.id); + const events = useStore.getState().eventsSlice.getEventsByComponentsId(selectedComponent.id); const component = { component: allComponents[selectedComponent.id]?.component, layouts: allComponents[selectedComponent.id]?.layouts, diff --git a/frontend/src/AppBuilder/_stores/slices/dataQuerySlice.js b/frontend/src/AppBuilder/_stores/slices/dataQuerySlice.js index 4da379f443..802fd4f0f1 100644 --- a/frontend/src/AppBuilder/_stores/slices/dataQuerySlice.js +++ b/frontend/src/AppBuilder/_stores/slices/dataQuerySlice.js @@ -223,6 +223,8 @@ export const createDataQuerySlice = (set, get) => ({ set((state) => { state.dataQuery.creatingQueryInProcessId = uuidv4(); }); + const { eventsSlice } = get(); + const { getEventsByComponentsId, createAppVersionEventHandlers } = eventsSlice; const dataQueries = get().dataQuery.queries.modules[moduleId]; const queryToClone = { ...dataQueries.find((query) => query.id === id) }; let newName = queryToClone.name + '_copy'; @@ -266,6 +268,20 @@ export const createDataQuerySlice = (set, get) => ({ rawData: [], id: data.id, }); + + const events = getEventsByComponentsId(queryToClone.id); + + events.forEach((event) => { + const newEvent = { + event: { + ...event.event, + }, + eventType: event.target, + attachedTo: data.id, + index: event.index, + }; + createAppVersionEventHandlers(newEvent, moduleId); + }); }) .catch((error) => { console.error('error', error); diff --git a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js index 336bc06953..02ee8fc29c 100644 --- a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js @@ -948,7 +948,7 @@ export const createEventsSlice = (set, get) => ({ }; }, // Selectors - geEventsByComponentsId: (componentId, moduleId = 'canvas') => { + getEventsByComponentsId: (componentId, moduleId = 'canvas') => { const { eventsSlice } = get(); return eventsSlice.module[moduleId]?.events?.filter((event) => event.sourceId === componentId); },