From 4fb52639bfeb72b02b0109976cd8819bb9490e69 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Thu, 15 Jun 2017 14:26:40 -0700 Subject: [PATCH] More forgiving tag editing --- app/ui/components/templating/tag-editor.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/app/ui/components/templating/tag-editor.js b/app/ui/components/templating/tag-editor.js index 86374bf590..b491d521b6 100644 --- a/app/ui/components/templating/tag-editor.js +++ b/app/ui/components/templating/tag-editor.js @@ -105,6 +105,15 @@ class TagEditor extends PureComponent { }, 100); } + _getDefaultTagData (tagDefinition) { + const defaultFill = templateUtils.getDefaultFill( + tagDefinition.name, + tagDefinition.args + ); + + return templateUtils.tokenizeTag(defaultFill); + } + async _update (tagDefinition, tagData, noCallback = false) { const {handleRender} = this.props; @@ -113,8 +122,7 @@ class TagEditor extends PureComponent { let activeTagData = tagData; if (!activeTagData && tagDefinition) { - const defaultFill = templateUtils.getDefaultFill(tagDefinition.name, tagDefinition.args); - activeTagData = templateUtils.tokenizeTag(defaultFill); + activeTagData = this._getDefaultTagData(tagDefinition); } else if (!activeTagData && !tagDefinition) { activeTagData = { name: 'custom', @@ -226,7 +234,14 @@ class TagEditor extends PureComponent { return null; } - const argData = args[argIndex]; + let argData; + if (argIndex < args.length) { + argData = args[argIndex]; + } else { + const defaultTagData = this._getDefaultTagData(this.state.activeTagDefinition); + argData = defaultTagData.args[argIndex]; + } + const value = argData.value; let argInput;