diff --git a/.version b/.version index 99ba0ddace..09ce5a7d5a 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -3.0.2-ce-lts +3.0.3-ce-lts diff --git a/frontend/.version b/frontend/.version index 99ba0ddace..09ce5a7d5a 100644 --- a/frontend/.version +++ b/frontend/.version @@ -1 +1 @@ -3.0.2-ce-lts +3.0.3-ce-lts diff --git a/frontend/src/AppBuilder/WidgetManager/widgets/codeEditor.js b/frontend/src/AppBuilder/WidgetManager/widgets/codeEditor.js index d7ff03d9a8..eb76891af0 100644 --- a/frontend/src/AppBuilder/WidgetManager/widgets/codeEditor.js +++ b/frontend/src/AppBuilder/WidgetManager/widgets/codeEditor.js @@ -67,6 +67,13 @@ export const codeEditorConfig = { exposedVariables: { value: '', }, + actions: [ + { + handle: 'setValue', + displayName: 'Set value', + params: [{ handle: 'setValue', defaultValue: '' }], + }, + ], definition: { others: { showOnDesktop: { value: '{{true}}' }, diff --git a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js index 5e96052f6f..c989df9051 100644 --- a/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/queryPanelSlice.js @@ -441,7 +441,9 @@ export const createQueryPanelSlice = (set, get) => ({ isLoading: false, data: finalData, rawData, - metadata: data.metadata, + metadata: data?.metadata, + request: data?.metadata?.request, + response: data?.metadata?.response, }); resolve({ status: 'ok', data: finalData }); diff --git a/frontend/src/AppBuilder/_stores/slices/resolvedSlice.js b/frontend/src/AppBuilder/_stores/slices/resolvedSlice.js index 4c29226864..dc6eb9cecc 100644 --- a/frontend/src/AppBuilder/_stores/slices/resolvedSlice.js +++ b/frontend/src/AppBuilder/_stores/slices/resolvedSlice.js @@ -183,7 +183,7 @@ export const createResolvedSlice = (set, get) => ({ ); Object.entries(details).forEach(([key, value]) => { - if (['isLoading', 'data', 'rawData'].includes(key)) { + if (['isLoading', 'data', 'rawData', 'request', 'response', 'responseHeaders', 'metadata'].includes(key)) { if (typeof value !== 'function') get().updateDependencyValues(`queries.${queryId}.${key}`); } }); diff --git a/frontend/src/Editor/Components/CodeEditor.jsx b/frontend/src/Editor/Components/CodeEditor.jsx index 50038c0645..e12e4f10ff 100644 --- a/frontend/src/Editor/Components/CodeEditor.jsx +++ b/frontend/src/Editor/Components/CodeEditor.jsx @@ -1,5 +1,5 @@ /* eslint-disable import/no-unresolved */ -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; import CodeMirror from '@uiw/react-codemirror'; import { okaidia } from '@uiw/codemirror-theme-okaidia'; import { githubLight } from '@uiw/codemirror-theme-github'; @@ -51,6 +51,16 @@ export const CodeEditor = ({ id, height, darkMode, properties, styles, setExpose return height || 'auto'; }, [height]); + useEffect(() => { + const _setValue = (value) => { + if (typeof value === 'string') { + codeChanged(value); + } + }; + setExposedVariable('setValue', _setValue); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + return (