fix(editor): Fix hard-coded parameter names for code editors (#6372)

* fix(editor): Fix hard-coded parameter names for code editors
*  Adding computed property for editor content
* 👌 Refactoring based on the code review comments
This commit is contained in:
Milorad FIlipović 2023-06-02 19:04:42 +02:00 committed by GitHub
parent 968b733fd6
commit f61b776bea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -87,7 +87,7 @@
<code-node-editor
v-if="editorType === 'codeNodeEditor' && isCodeNode(node)"
:mode="node.parameters.mode"
:value="node.parameters.jsCode"
:value="editorContent"
:defaultValue="parameter.default"
:language="editorLanguage"
:isReadOnly="isReadOnly"
@ -97,7 +97,7 @@
<html-editor
v-else-if="editorType === 'htmlEditor'"
:html="node.parameters.html"
:html="editorContent"
:isReadOnly="isReadOnly"
:rows="getArgument('rows')"
:disableExpressionColoring="!isHtmlNode(node)"
@ -107,7 +107,7 @@
<sql-editor
v-else-if="editorType === 'sqlEditor'"
:query="node.parameters.query"
:query="editorContent"
:dialect="getArgument('sqlDialect')"
:isReadOnly="isReadOnly"
@valueChanged="valueChangedDebounced"
@ -365,6 +365,7 @@ import type {
IParameterLabel,
EditorType,
CodeNodeEditorLanguage,
INodeTypeDescription,
} from 'n8n-workflow';
import { NodeHelpers } from 'n8n-workflow';
@ -820,6 +821,22 @@ export default defineComponent({
remoteParameterOptionsKeys(): string[] {
return (this.remoteParameterOptions || []).map((o) => o.name);
},
nodeType(): INodeTypeDescription | null {
if (!this.node) return null;
return this.nodeTypesStore.getNodeType(this.node.type, this.node.typeVersion);
},
editorContent(): string | undefined {
if (!this.nodeType) {
return;
}
const editorProp = this.nodeType.properties.find(
(p) => p.typeOptions?.editor === (this.editorType as string),
);
if (!editorProp) {
return;
}
return this.node.parameters[editorProp.name] as string;
},
},
methods: {
isRemoteParameterOption(option: INodePropertyOptions) {