From 5acbfb423436b94e58af0e532e567bdc3783a622 Mon Sep 17 00:00:00 2001 From: Elias Meire Date: Mon, 22 Apr 2024 14:57:41 +0200 Subject: [PATCH] fix(editor): Prevent duplicate values in preview for SQL editor (#9129) --- .../src/components/ExpressionEdit.vue | 15 ++- .../ExpressionEditorModalOutput.vue | 101 --------------- .../ExpressionOutput.vue | 117 ++++++++++++++++++ .../InlineExpressionEditorOutput.vue | 99 ++------------- .../InlineExpressionEditorOutput.test.ts | 100 +++++++++++++++ .../src/components/SqlEditor/SqlEditor.vue | 2 +- 6 files changed, 236 insertions(+), 198 deletions(-) delete mode 100644 packages/editor-ui/src/components/ExpressionEditorModal/ExpressionEditorModalOutput.vue create mode 100644 packages/editor-ui/src/components/InlineExpressionEditor/ExpressionOutput.vue create mode 100644 packages/editor-ui/src/components/InlineExpressionEditor/__tests__/InlineExpressionEditorOutput.test.ts diff --git a/packages/editor-ui/src/components/ExpressionEdit.vue b/packages/editor-ui/src/components/ExpressionEdit.vue index 7540d020c9..7e4deea9a2 100644 --- a/packages/editor-ui/src/components/ExpressionEdit.vue +++ b/packages/editor-ui/src/components/ExpressionEdit.vue @@ -65,9 +65,10 @@ {{ $locale.baseText('expressionEdit.resultOfItem1') }}
-
@@ -82,7 +83,6 @@ import { defineComponent } from 'vue'; import { mapStores } from 'pinia'; import ExpressionEditorModalInput from '@/components/ExpressionEditorModal/ExpressionEditorModalInput.vue'; -import ExpressionEditorModalOutput from '@/components/ExpressionEditorModal/ExpressionEditorModalOutput.vue'; import VariableSelector from '@/components/VariableSelector.vue'; import type { IVariableItemSelected } from '@/Interface'; @@ -96,12 +96,14 @@ import { createExpressionTelemetryPayload } from '@/utils/telemetryUtils'; import { useDebounce } from '@/composables/useDebounce'; import type { Segment } from '@/types/expressions'; +import ExpressionOutput from './InlineExpressionEditor/ExpressionOutput.vue'; +import { outputTheme } from './ExpressionEditorModal/theme'; export default defineComponent({ name: 'ExpressionEdit', components: { ExpressionEditorModalInput, - ExpressionEditorModalOutput, + ExpressionOutput, VariableSelector, }, props: { @@ -149,6 +151,7 @@ export default defineComponent({ latestValue: '', segments: [] as Segment[], expressionsDocsUrl: EXPRESSIONS_DOCS_URL, + theme: outputTheme(), }; }, computed: { @@ -160,11 +163,7 @@ export default defineComponent({ this.latestValue = this.modelValue; const resolvedExpressionValue = - ( - this.$refs.expressionResult as { - getValue: () => string; - } - )?.getValue() || ''; + (this.$refs.expressionResult as InstanceType)?.getValue() || ''; void this.externalHooks.run('expressionEdit.dialogVisibleChanged', { dialogVisible: newValue, parameter: this.parameter, diff --git a/packages/editor-ui/src/components/ExpressionEditorModal/ExpressionEditorModalOutput.vue b/packages/editor-ui/src/components/ExpressionEditorModal/ExpressionEditorModalOutput.vue deleted file mode 100644 index 3e1d84524c..0000000000 --- a/packages/editor-ui/src/components/ExpressionEditorModal/ExpressionEditorModalOutput.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - - - diff --git a/packages/editor-ui/src/components/InlineExpressionEditor/ExpressionOutput.vue b/packages/editor-ui/src/components/InlineExpressionEditor/ExpressionOutput.vue new file mode 100644 index 0000000000..ab545be0ab --- /dev/null +++ b/packages/editor-ui/src/components/InlineExpressionEditor/ExpressionOutput.vue @@ -0,0 +1,117 @@ + + + diff --git a/packages/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorOutput.vue b/packages/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorOutput.vue index ba45d6d1bf..3c160848d1 100644 --- a/packages/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorOutput.vue +++ b/packages/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorOutput.vue @@ -1,13 +1,11 @@