From ae090eee180adb241be9bf9abd8deb96be4e896b Mon Sep 17 00:00:00 2001 From: Andy Brown Date: Fri, 3 Apr 2020 08:04:35 -0700 Subject: [PATCH] Revert "feat: create lg template when schema provides a default value (#2487)" This reverts commit df97a7e8ef99572cfa570ad53be912ebe743813a. --- Composer/packages/server/schemas/sdk.schema | 2 +- .../packages/ui-plugins/lg/src/LgField.tsx | 45 ++++++++----------- 2 files changed, 20 insertions(+), 27 deletions(-) diff --git a/Composer/packages/server/schemas/sdk.schema b/Composer/packages/server/schemas/sdk.schema index 86375d7d4e..daafbad29f 100644 --- a/Composer/packages/server/schemas/sdk.schema +++ b/Composer/packages/server/schemas/sdk.schema @@ -9401,7 +9401,7 @@ "description": "Text for no match option.", "default": "None of the above." }, - "cardNoMatchResponse": { + "cardNoMatchResponse ": { "$kind": "Microsoft.IActivityTemplate", "title": "Card no match response", "description": "Custom response when no match option was selected.", diff --git a/Composer/packages/ui-plugins/lg/src/LgField.tsx b/Composer/packages/ui-plugins/lg/src/LgField.tsx index 7429d0c512..2dc33533d8 100644 --- a/Composer/packages/ui-plugins/lg/src/LgField.tsx +++ b/Composer/packages/ui-plugins/lg/src/LgField.tsx @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import React, { useCallback, useState, useRef, useEffect, useMemo } from 'react'; +import React, { useCallback, useState, useRef, useEffect } from 'react'; import { LgEditor } from '@bfc/code-editor'; import { FieldProps, useShellApi } from '@bfc/extension'; import { FieldLabel } from '@bfc/adaptive-form'; @@ -37,7 +37,7 @@ const LgField: React.FC> = props => { const { designerId, currentDialog, lgFiles, shellApi, projectId, locale } = useShellApi(); const singleLgRefMatched = value && value.match(`@\\{([A-Za-z_][-\\w]+)(\\([^\\)]*\\))?\\}`); - const lgName = singleLgRefMatched ? singleLgRefMatched[1] : new LgMetaData(name.trim(), designerId || '').toString(); + const lgName = singleLgRefMatched ? singleLgRefMatched[1] : new LgMetaData(name, designerId || '').toString(); const lgFileId = `${currentDialog.lgFile}.${locale}`; const lgFile = lgFiles && lgFiles.find(file => file.id === lgFileId); @@ -48,9 +48,9 @@ const LgField: React.FC> = props => { [lgName, lgFileId] ); - const hasTemplate = useMemo(() => lgFile?.templates.find(t => t.name === lgName), []); - const template = (hasTemplate && - lgFile?.templates.find(template => { + const template = (lgFile && + lgFile.templates && + lgFile.templates.find(template => { return template.name === lgName; })) || { name: lgName, @@ -58,29 +58,9 @@ const LgField: React.FC> = props => { body: getInitialTemplate(name, value), }; - const [localValue, setLocalValue] = useState(template.body); - const onChange = (body: string) => { - setLocalValue(body); - if (designerId) { - if (body) { - updateLgTemplate(body); - props.onChange(new LgTemplateRef(lgName).toString()); - } else { - shellApi.removeLgTemplate(lgFileId, lgName); - props.onChange(); - } - } - }; - - useEffect(() => { - // create the lg template if the schema porvides a default value - if (template.body && !hasTemplate) { - onChange(template.body); - } - }, []); - const diagnostics = lgFile ? filterTemplateDiagnostics(lgFile.diagnostics, template) : []; + const [localValue, setLocalValue] = useState(template.body); const sync = useRef( debounce((shellData: any, localData: any) => { if (!isEqual(shellData, localData)) { @@ -103,6 +83,19 @@ const LgField: React.FC> = props => { templateId: lgName, }; + const onChange = (body: string) => { + setLocalValue(body); + if (designerId) { + if (body) { + updateLgTemplate(body); + props.onChange(new LgTemplateRef(lgName).toString()); + } else { + shellApi.removeLgTemplate(lgFileId, lgName); + props.onChange(); + } + } + }; + return (