From 27c32cc12b5603084c709095a314cb7184de52b8 Mon Sep 17 00:00:00 2001 From: Vijaykant Yadav Date: Thu, 13 Mar 2025 04:42:49 +0530 Subject: [PATCH 1/6] fix: custom debug and transformation entities bugs --- .../AppBuilder/_stores/slices/eventsSlice.js | 2 +- .../_stores/slices/queryPanelSlice.js | 97 ++++++++++++------- .../LeftSidebar/SidebarDebugger/Logs.jsx | 4 +- frontend/src/_styles/left-sidebar.scss | 1 + 4 files changed, 67 insertions(+), 37 deletions(-) diff --git a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js index 948ac39b39..5c449e1f04 100644 --- a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js @@ -470,7 +470,7 @@ export const createEventsSlice = (set, get) => ({ error: { message: error.message, description: JSON.stringify(error.message, null, 2), - ...(event.component && componentId && { componentId: componentId }), + ...(event.component === 'component' && componentId && { componentId: componentId }), }, errorTarget: constructErrorTarget(), options: options, diff --git a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js index fd49d2a5e4..b2a4e4340d 100644 --- a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js @@ -425,7 +425,7 @@ export const createQueryPanelSlice = (set, get) => ({ query, 'edit' ); - if (finalData.status === 'failed') { + if (finalData?.status === 'failed') { setResolvedQuery(queryId, { isLoading: false, }); @@ -749,18 +749,30 @@ export const createQueryPanelSlice = (set, get) => ({ runTransformation: async (rawData, transformation, transformationLanguage = 'javascript', query, mode = 'edit') => { const data = rawData; const { - queryPanel: { runPythonTransformation }, + queryPanel: { runPythonTransformation, createProxy }, getResolvedState, } = get(); - let result = []; + let result = {}; const currentState = getResolvedState(); if (transformationLanguage === 'python') { result = await runPythonTransformation(currentState, data, transformation, query, mode); } else if (transformationLanguage === 'javascript') { try { + const { eventsSlice } = get(); + const { generateAppActions } = eventsSlice; + const queriesInResolvedState = deepClone(currentState.queries); + const actions = generateAppActions('', mode); + + const proxiedComponents = createProxy(currentState?.components, 'components'); + const proxiedGlobals = createProxy(currentState?.globals, 'globals'); + const proxiedConstants = createProxy(currentState?.constants, 'constants'); + const proxiedVariables = createProxy(currentState?.variables, 'variables'); + const proxiedPage = createProxy(deepClone(currentState?.page, 'page')); + const proxiedQueriesInResolvedState = createProxy(queriesInResolvedState, 'queries'); + const evalFunction = Function( - ['data', 'moment', '_', 'components', 'queries', 'globals', 'variables', 'page', 'constants'], + ['data', 'moment', '_', 'components', 'queries', 'globals', 'variables', 'page', 'constants', 'actions'], transformation ); @@ -768,32 +780,45 @@ export const createQueryPanelSlice = (set, get) => ({ data, moment, _, - currentState.components, - currentState.queries, - currentState.globals, - currentState.variables, - currentState.page, - currentState.constants + proxiedComponents, + proxiedQueriesInResolvedState, + proxiedGlobals, + proxiedVariables, + proxiedPage, + proxiedConstants, + { + logError: actions.logError, + logInfo: actions.logInfo, + log: actions.log, + } ); } catch (err) { - result = { - message: err.stack.split('\n')[0], - status: 'failed', - data: data, - }; + const stackLines = err.stack.split('\n'); + const errorLocation = + stackLines[2]?.match(/:(\d+):(\d+)/) ?? stackLines[1]?.match(/:(\d+):(\d+)/); + + let lineNumber = null; + + if (errorLocation) { + lineNumber = errorLocation[1] - 2; + } + + console.log('JS execution failed: ', err); + let error = err.message || err.stack.split('\n')[0] || 'JS execution failed'; + result = { status: 'failed', data: { message: error, description: error, lineNumber } }; + get().debugger.log({ + logLevel: result?.status === 'failed' ? 'error' : 'success', + type: 'transformation', + kind: query.kind, + key: query.name, + message: result?.message, + error: result?.data, + isTransformation: true, + isQuerySuccessLog: result?.status === 'failed' ? false : true, + errorTarget: 'Queries', + }); } } - get().debugger.log({ - logLevel: result?.status === 'failed' ? 'error' : 'success', - type: 'transformation', - kind: query.kind, - key: query.name, - message: result?.message, - error: result, - isTransformation: true, - isQuerySuccessLog: result?.status === 'failed' ? false : true, - errorTarget: 'Queries', - }); return result; }, @@ -861,12 +886,13 @@ export const createQueryPanelSlice = (set, get) => ({ createProxy: (obj, path = '') => { const { queryPanel } = get(); const { createProxy } = queryPanel; + return new Proxy(obj, { get(target, prop) { const fullPath = path ? `${path}.${prop}` : prop; if (!(prop in target)) { - throw new Error(`Property "${fullPath}" is not defined`); + throw new Error(`ReferenceError: ${fullPath} is not defined`); } const value = target[prop]; @@ -955,13 +981,16 @@ export const createQueryPanelSlice = (set, get) => ({ //Proxy Func required to get current execution line number from stack to log in debugger - const proxiedComponents = createProxy(resolvedState?.components); - const proxiedGlobals = createProxy(resolvedState?.globals); - const proxiedConstants = createProxy(resolvedState?.constants); - const proxiedVariables = createProxy(resolvedState?.variables); - const proxiedPage = createProxy(deepClone(resolvedState?.page)); - const proxiedQueriesInResolvedState = createProxy(queriesInResolvedState); - const proxiedFormattedParams = createProxy(!_.isEmpty(proxiedFormattedParams) ? [proxiedFormattedParams] : []); + const proxiedComponents = createProxy(resolvedState?.components, 'components'); + const proxiedGlobals = createProxy(resolvedState?.globals, 'globals'); + const proxiedConstants = createProxy(resolvedState?.constants, 'constants'); + const proxiedVariables = createProxy(resolvedState?.variables, 'variables'); + const proxiedPage = createProxy(deepClone(resolvedState?.page, 'page')); + const proxiedQueriesInResolvedState = createProxy(queriesInResolvedState, 'queries'); + const proxiedFormattedParams = createProxy( + !_.isEmpty(proxiedFormattedParams) ? [proxiedFormattedParams] : [], + 'params' + ); const fnParams = [ 'moment', diff --git a/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx b/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx index aba2ca6af1..20855a1f0b 100644 --- a/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx +++ b/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx @@ -27,7 +27,7 @@ function Logs({ logProps, idx }) { logProps?.description || (isString(logProps?.message) && logProps?.message) || (isString(logProps?.error?.description) && logProps?.error?.description) || //added string check since description can be an object. eg: runpy - logProps?.error?.message.trim() + logProps?.error?.message }`; const defaultStyles = { @@ -113,7 +113,7 @@ function Logs({ logProps, idx }) { Date: Thu, 13 Mar 2025 14:52:16 +0530 Subject: [PATCH 2/6] fix: custom logs format --- .../AppBuilder/_stores/slices/eventsSlice.js | 26 ++++++++++++++++--- .../_stores/slices/queryPanelSlice.js | 2 +- .../LeftSidebar/SidebarDebugger/Logs.jsx | 9 ++++--- frontend/src/_styles/left-sidebar.scss | 9 ++++++- 4 files changed, 37 insertions(+), 9 deletions(-) diff --git a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js index 5c449e1f04..6b2c7e8ae7 100644 --- a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js @@ -457,7 +457,7 @@ export const createEventsSlice = (set, get) => ({ page: 'Event Errors with page', component: 'Component Event', query: 'Event Errors with query', - customLog: 'Custom Log', + customLog: 'Queries', }; return errorTargetMap[source]; @@ -1103,29 +1103,47 @@ export const createEventsSlice = (set, get) => ({ }; const logInfo = (log) => { + const query = dataQuery.queries.modules['canvas'].find((query) => query.id == queryId); const error = new Error(); const stackLine = error.stack.split('\n')[2]; const lineNumberMatch = stackLine.match(/:(\d+):\d+\)$/); const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; - const event = { actionId: 'log-info', description: `${log}, Line ${lineNumber - 2}`, eventType: 'customLog' }; + const event = { + actionId: 'log-info', + description: `${query.name}, ${log}, Line ${lineNumber - 2}`, + eventType: 'customLog', + query, + }; return executeAction(event, mode, {}); }; const logError = (log) => { + const query = dataQuery.queries.modules['canvas'].find((query) => query.id == queryId); const error = new Error(); const stackLine = error.stack.split('\n')[2]; const lineNumberMatch = stackLine.match(/:(\d+):\d+\)$/); const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; - const event = { actionId: 'log-error', description: `${log}, Line ${lineNumber - 2}`, eventType: 'customLog' }; + const event = { + actionId: 'log-error', + description: `${query.name}, ${log}, Line ${lineNumber - 2}`, + eventType: 'customLog', + query, + }; return executeAction(event, mode, {}); }; const log = (log) => { + const query = dataQuery.queries.modules['canvas'].find((query) => query.id == queryId); const error = new Error(); const stackLine = error.stack.split('\n')[2]; const lineNumberMatch = stackLine.match(/:(\d+):\d+\)$/); const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; - const event = { actionId: 'log', description: `${log}, Line ${lineNumber - 2}`, eventType: 'customLog' }; + const event = { + actionId: 'log', + description: `${query.name}, ${log}, Line ${lineNumber - 2}`, + eventType: 'customLog', + query, + }; return executeAction(event, mode, {}); }; diff --git a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js index b2a4e4340d..b9509a45f5 100644 --- a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js @@ -762,7 +762,7 @@ export const createQueryPanelSlice = (set, get) => ({ const { eventsSlice } = get(); const { generateAppActions } = eventsSlice; const queriesInResolvedState = deepClone(currentState.queries); - const actions = generateAppActions('', mode); + const actions = generateAppActions(query?.id, mode); const proxiedComponents = createProxy(currentState?.components, 'components'); const proxiedGlobals = createProxy(currentState?.globals, 'globals'); diff --git a/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx b/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx index 20855a1f0b..083221d47f 100644 --- a/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx +++ b/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx @@ -103,17 +103,20 @@ function Logs({ logProps, idx }) {
{logProps?.errorTarget}
{moment(logProps?.timestamp).fromNow()} + {logProps?.type === 'Custom Log' && ( +
Custom Log
+ )}
Date: Wed, 26 Mar 2025 03:55:10 +0530 Subject: [PATCH 3/6] fix: styling --- .../AppBuilder/_stores/slices/eventsSlice.js | 12 +++++++---- .../_stores/slices/queryPanelSlice.js | 12 +++++------ .../LeftSidebar/SidebarDebugger/Logs.jsx | 12 ++++++----- frontend/src/_styles/left-sidebar.scss | 6 ++++++ frontend/src/_ui/Icon/solidIcons/Code.jsx | 21 +++++++++++++++++++ frontend/src/_ui/Icon/solidIcons/index.js | 3 +++ 6 files changed, 51 insertions(+), 15 deletions(-) create mode 100644 frontend/src/_ui/Icon/solidIcons/Code.jsx diff --git a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js index 6b2c7e8ae7..bb1374af2e 100644 --- a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js @@ -444,7 +444,7 @@ export const createEventsSlice = (set, get) => ({ component: `[Page ${pageName}] [Component ${componentName}] [Event ${event?.eventId}] [Action ${event.actionId}]`, page: `[Page ${pageName}] [Event ${event.eventId}] [Action ${event.actionId}]`, query: `[Query ${getQueryName()}] [Event ${event.eventId}] [Action ${event.actionId}]`, - customLog: `${event.description}`, + customLog: `${event.key}`, }; return headerMap[source] || ''; @@ -472,6 +472,7 @@ export const createEventsSlice = (set, get) => ({ description: JSON.stringify(error.message, null, 2), ...(event.component === 'component' && componentId && { componentId: componentId }), }, + description: event?.description, errorTarget: constructErrorTarget(), options: options, strace: 'app_level', @@ -1110,7 +1111,8 @@ export const createEventsSlice = (set, get) => ({ const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; const event = { actionId: 'log-info', - description: `${query.name}, ${log}, Line ${lineNumber - 2}`, + key: `${query.name}, Line ${lineNumber - 2}`, + description: log, eventType: 'customLog', query, }; @@ -1125,7 +1127,8 @@ export const createEventsSlice = (set, get) => ({ const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; const event = { actionId: 'log-error', - description: `${query.name}, ${log}, Line ${lineNumber - 2}`, + key: `${query.name}, Line ${lineNumber - 2}`, + description: log, eventType: 'customLog', query, }; @@ -1140,7 +1143,8 @@ export const createEventsSlice = (set, get) => ({ const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; const event = { actionId: 'log', - description: `${query.name}, ${log}, Line ${lineNumber - 2}`, + key: `${query.name}, Line ${lineNumber - 2}`, + description: log, eventType: 'customLog', query, }; diff --git a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js index b9509a45f5..ab29ed5b39 100644 --- a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js @@ -810,7 +810,7 @@ export const createQueryPanelSlice = (set, get) => ({ logLevel: result?.status === 'failed' ? 'error' : 'success', type: 'transformation', kind: query.kind, - key: query.name, + key: `${query.name}, transformation, line ${result?.data?.lineNumber}`, message: result?.message, error: result?.data, isTransformation: true, @@ -981,12 +981,12 @@ export const createQueryPanelSlice = (set, get) => ({ //Proxy Func required to get current execution line number from stack to log in debugger - const proxiedComponents = createProxy(resolvedState?.components, 'components'); - const proxiedGlobals = createProxy(resolvedState?.globals, 'globals'); - const proxiedConstants = createProxy(resolvedState?.constants, 'constants'); - const proxiedVariables = createProxy(resolvedState?.variables, 'variables'); + const proxiedComponents = createProxy(deepClone(resolvedState?.components), 'components'); + const proxiedGlobals = createProxy(deepClone(resolvedState?.globals), 'globals'); + const proxiedConstants = createProxy(deepClone(resolvedState?.constants), 'constants'); + const proxiedVariables = createProxy(deepClone(resolvedState?.variables), 'variables'); const proxiedPage = createProxy(deepClone(resolvedState?.page, 'page')); - const proxiedQueriesInResolvedState = createProxy(queriesInResolvedState, 'queries'); + const proxiedQueriesInResolvedState = createProxy(deepClone(queriesInResolvedState), 'queries'); const proxiedFormattedParams = createProxy( !_.isEmpty(proxiedFormattedParams) ? [proxiedFormattedParams] : [], 'params' diff --git a/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx b/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx index 083221d47f..5303534ad9 100644 --- a/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx +++ b/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx @@ -87,12 +87,12 @@ function Logs({ logProps, idx }) {

{ - setOpen((prev) => !prev); + logProps?.type !== 'Custom Log' && setOpen((prev) => !prev); }} style={{ pointerEvents: logProps?.isQuerySuccessLog ? 'none' : 'default', position: 'relative' }} > - + {logProps?.type !== 'Custom Log' && } {logProps.type === 'navToDisablePage' ? ( @@ -104,7 +104,9 @@ function Logs({ logProps, idx }) { {moment(logProps?.timestamp).fromNow()} {logProps?.type === 'Custom Log' && ( -

Custom Log
+
+ Custom Log +
)}
+ {logProps?.type == 'Custom Log' &&
{message}
} - {message} - {logProps?.error?.lineNumber ? `, Line ${logProps.error.lineNumber}` : ''} + {logProps?.type !== 'Custom Log' && message} )} diff --git a/frontend/src/_styles/left-sidebar.scss b/frontend/src/_styles/left-sidebar.scss index 217ea20ccb..8efdcabdd3 100644 --- a/frontend/src/_styles/left-sidebar.scss +++ b/frontend/src/_styles/left-sidebar.scss @@ -261,10 +261,16 @@ } .error-target-custom-log { + display: flex; + align-items: center; margin-top: 5px; background: var(--purple5) !important; color: var(--purple11); width: fit-content; + + svg { + margin-right: 1px; + } } } diff --git a/frontend/src/_ui/Icon/solidIcons/Code.jsx b/frontend/src/_ui/Icon/solidIcons/Code.jsx new file mode 100644 index 0000000000..d4022f94d0 --- /dev/null +++ b/frontend/src/_ui/Icon/solidIcons/Code.jsx @@ -0,0 +1,21 @@ +import React from 'react'; + +const Code = ({ fill = 'var(--purple11)', width = '25', className = '', viewBox = '0 0 25 25' }) => ( + + + +); + +export default Code; diff --git a/frontend/src/_ui/Icon/solidIcons/index.js b/frontend/src/_ui/Icon/solidIcons/index.js index 34a2410e1d..02ef072f4a 100644 --- a/frontend/src/_ui/Icon/solidIcons/index.js +++ b/frontend/src/_ui/Icon/solidIcons/index.js @@ -229,6 +229,7 @@ import CalendarSmall from './CalendarSmall.jsx'; import UserGroupsGrey from './UserGroupsGrey.jsx'; import AppLimitSvg from './AppLimitSvg.jsx'; import NewTabSmall from './NewTabSmall.jsx'; +import Code from './Code.jsx'; const Icon = (props) => { switch (props.name) { @@ -308,6 +309,8 @@ const Icon = (props) => { return ; case 'clearrectangle': return ; + case 'code': + return ; case 'clock': return ; case 'column': From 6f87d3890aa26801dcff7116d6765c166f9a3247 Mon Sep 17 00:00:00 2001 From: Vijaykant Yadav Date: Thu, 3 Apr 2025 11:54:35 +0530 Subject: [PATCH 4/6] fix: transformation lines on restapi --- .../AppBuilder/_stores/slices/eventsSlice.js | 18 +++++++++--------- .../_stores/slices/queryPanelSlice.js | 12 +++++++++--- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js index bb1374af2e..8ab0909d0a 100644 --- a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js @@ -1103,15 +1103,15 @@ export const createEventsSlice = (set, get) => ({ return executeAction(event, mode, {}); }; - const logInfo = (log) => { + const logInfo = (log, isFromTransformation) => { const query = dataQuery.queries.modules['canvas'].find((query) => query.id == queryId); const error = new Error(); - const stackLine = error.stack.split('\n')[2]; + const stackLine = error.stack.split('\n')[isFromTransformation ? 3 : 2]; const lineNumberMatch = stackLine.match(/:(\d+):\d+\)$/); const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; const event = { actionId: 'log-info', - key: `${query.name}, Line ${lineNumber - 2}`, + key: `${query.name}${isFromTransformation && ', transformation'}, line ${lineNumber - 2}`, description: log, eventType: 'customLog', query, @@ -1119,15 +1119,15 @@ export const createEventsSlice = (set, get) => ({ return executeAction(event, mode, {}); }; - const logError = (log) => { + const logError = (log, isFromTransformation = false) => { const query = dataQuery.queries.modules['canvas'].find((query) => query.id == queryId); const error = new Error(); - const stackLine = error.stack.split('\n')[2]; + const stackLine = error.stack.split('\n')[isFromTransformation ? 3 : 2]; const lineNumberMatch = stackLine.match(/:(\d+):\d+\)$/); const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; const event = { actionId: 'log-error', - key: `${query.name}, Line ${lineNumber - 2}`, + key: `${query.name}${isFromTransformation && ', transformation'}, line ${lineNumber - 2}`, description: log, eventType: 'customLog', query, @@ -1135,15 +1135,15 @@ export const createEventsSlice = (set, get) => ({ return executeAction(event, mode, {}); }; - const log = (log) => { + const log = (log, isFromTransformation = false) => { const query = dataQuery.queries.modules['canvas'].find((query) => query.id == queryId); const error = new Error(); - const stackLine = error.stack.split('\n')[2]; + const stackLine = error.stack.split('\n')[isFromTransformation ? 3 : 2]; const lineNumberMatch = stackLine.match(/:(\d+):\d+\)$/); const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; const event = { actionId: 'log', - key: `${query.name}, Line ${lineNumber - 2}`, + key: `${query.name}${isFromTransformation && ', transformation'}, line ${lineNumber - 2}`, description: log, eventType: 'customLog', query, diff --git a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js index ab29ed5b39..d2f3bc4dff 100644 --- a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js @@ -787,9 +787,15 @@ export const createQueryPanelSlice = (set, get) => ({ proxiedPage, proxiedConstants, { - logError: actions.logError, - logInfo: actions.logInfo, - log: actions.log, + logError: function (log) { + return actions.logError.call(actions, log, true); + }, + logInfo: function (log) { + return actions.logInfo.call(actions, log, true); + }, + log: function (log) { + return actions.log.call(actions, log, true); + }, } ); } catch (err) { From 4313e07dc25937287ec2b1a61d859ec6f5f8d895 Mon Sep 17 00:00:00 2001 From: Vijaykant Yadav Date: Thu, 3 Apr 2025 14:09:20 +0530 Subject: [PATCH 5/6] fix: styling --- .../src/AppBuilder/_stores/slices/eventsSlice.js | 6 +++--- .../src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx | 12 ++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js index 8ab0909d0a..9df1f6bbdf 100644 --- a/frontend/src/AppBuilder/_stores/slices/eventsSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/eventsSlice.js @@ -1111,7 +1111,7 @@ export const createEventsSlice = (set, get) => ({ const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; const event = { actionId: 'log-info', - key: `${query.name}${isFromTransformation && ', transformation'}, line ${lineNumber - 2}`, + key: `${query.name}${isFromTransformation ? ', transformation' : ''}, line ${lineNumber - 2}`, description: log, eventType: 'customLog', query, @@ -1127,7 +1127,7 @@ export const createEventsSlice = (set, get) => ({ const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; const event = { actionId: 'log-error', - key: `${query.name}${isFromTransformation && ', transformation'}, line ${lineNumber - 2}`, + key: `${query.name}${isFromTransformation ? ', transformation' : ''}, line ${lineNumber - 2}`, description: log, eventType: 'customLog', query, @@ -1143,7 +1143,7 @@ export const createEventsSlice = (set, get) => ({ const lineNumber = lineNumberMatch ? lineNumberMatch[1] : 'unknown'; const event = { actionId: 'log', - key: `${query.name}${isFromTransformation && ', transformation'}, line ${lineNumber - 2}`, + key: `${query.name}${isFromTransformation ? ', transformation' : ''}, line ${lineNumber - 2}`, description: log, eventType: 'customLog', query, diff --git a/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx b/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx index 5303534ad9..a30585bf42 100644 --- a/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx +++ b/frontend/src/Editor/LeftSidebar/SidebarDebugger/Logs.jsx @@ -108,11 +108,15 @@ function Logs({ logProps, idx }) { Custom Log )} -
+
From 0e09fd7aa9266294d724100890f4b13e30810496 Mon Sep 17 00:00:00 2001 From: Vijaykant Yadav Date: Thu, 3 Apr 2025 14:27:21 +0530 Subject: [PATCH 6/6] fix: error toast on preview --- frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js index d2f3bc4dff..10a3b62c22 100644 --- a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js @@ -621,7 +621,7 @@ export const createQueryPanelSlice = (set, get) => ({ query, 'edit' ); - if (finalData.status === 'failed') { + if (finalData?.status === 'failed') { onEvent('onDataQueryFailure', queryEvents); setPreviewLoading(false); setIsPreviewQueryLoading(false);