From f02aba28e52a63ea85bc93fb566036bb9d10e047 Mon Sep 17 00:00:00 2001 From: Eric-B-Wu Date: Mon, 1 Apr 2024 11:59:47 -0400 Subject: [PATCH] fix issue --- .../AzureLogicAppsDesigner/laDesignerConsumption.tsx | 6 +++++- libs/designer-ui/src/lib/code/index.tsx | 12 ++++++------ libs/designer-ui/src/lib/code/util.ts | 4 ++++ libs/designer-ui/src/lib/index.ts | 1 + .../settings/settingsection/settingTokenField.tsx | 7 ++++--- .../src/lib/core/actions/bjsworkflow/delete.ts | 5 +++-- .../ui/panel/nodeDetailsPanel/nodeDetailsPanel.tsx | 5 ++--- .../nodeDetailsPanel/tabs/parametersTab/index.tsx | 4 ++-- .../src/designer-client-services/lib/customcode.ts | 12 ------------ .../lib/standard/customcode.ts | 6 ------ 10 files changed, 27 insertions(+), 35 deletions(-) diff --git a/apps/designer-standalone/src/app/AzureLogicAppsDesigner/laDesignerConsumption.tsx b/apps/designer-standalone/src/app/AzureLogicAppsDesigner/laDesignerConsumption.tsx index e5bdc972843..eb6787602c5 100644 --- a/apps/designer-standalone/src/app/AzureLogicAppsDesigner/laDesignerConsumption.tsx +++ b/apps/designer-standalone/src/app/AzureLogicAppsDesigner/laDesignerConsumption.tsx @@ -42,6 +42,7 @@ import { getReactQueryClient, serializeBJSWorkflow, store as DesignerStore, + Constants, } from '@microsoft/logic-apps-designer'; import * as React from 'react'; import { useDispatch, useSelector } from 'react-redux'; @@ -210,7 +211,7 @@ const DesignerEditorConsumption = () => { showConnectionsPanel, hostOptions: { ...hostOptions, - recurrenceInterval: { interval: 3, frequency: 'Minute' }, + recurrenceInterval: Constants.RECURRENCE_OPTIONS.CONSUMPTION, }, }} > @@ -434,6 +435,8 @@ const getDesignerServices = ( location: 'westcentralus', }); + const hostService = {}; + return { appServiceService, connectionService, @@ -447,6 +450,7 @@ const getDesignerServices = ( apimService, functionService, runService, + hostService, chatbotService, }; }; diff --git a/libs/designer-ui/src/lib/code/index.tsx b/libs/designer-ui/src/lib/code/index.tsx index dc5d00fb6e0..2a06b8c2aa0 100644 --- a/libs/designer-ui/src/lib/code/index.tsx +++ b/libs/designer-ui/src/lib/code/index.tsx @@ -25,7 +25,7 @@ const customCodeIconStyle = { export interface CodeEditorProps extends BaseEditorProps { language: EditorLanguage; - isCustomCode?: boolean; + customCodeEditor?: boolean; nodeTitle?: string; } @@ -38,7 +38,7 @@ export function CodeEditor({ getTokenPicker, label, nodeTitle, - isCustomCode, + customCodeEditor, }: CodeEditorProps): JSX.Element { const intl = useIntl(); const codeEditorRef = useRef(null); @@ -70,7 +70,7 @@ export function CodeEditor({ if (!getInTokenPicker()) { setShowTokenPickerButton(false); } - if (isCustomCode) { + if (customCodeEditor) { onChange?.({ value: [createLiteralValueSegment(getFileName())], viewModel: { @@ -140,8 +140,8 @@ export function CodeEditor({ }); return ( -
- {isCustomCode ? ( +
+ {customCodeEditor ? (
{getFileName()}
@@ -180,7 +180,7 @@ export function CodeEditor({ tokenClicked ) : null} - {isCustomCode && showMessageBar ? ( + {customCodeEditor && showMessageBar ? ( { export const getCodeEditorHeight = (input = ''): string => { return Math.min(Math.max(input?.split('\n').length * 20, 228), 456) + 'px'; }; + +export const isCustomCode = (editor?: string, language?: string): boolean => { + return equals(editor, constants.PARAMETER.EDITOR.CODE) && !equals(language, constants.PARAMETER.EDITOR_OPTIONS.LANGUAGE.JAVASCRIPT); +}; diff --git a/libs/designer-ui/src/lib/index.ts b/libs/designer-ui/src/lib/index.ts index 7d2dab9e2a0..85df1ee3fbe 100644 --- a/libs/designer-ui/src/lib/index.ts +++ b/libs/designer-ui/src/lib/index.ts @@ -89,3 +89,4 @@ export * from './useId'; export { FunctionGroupDefinitions as TemplateFunctions } from './workflow/languageservice/templatefunctions'; export type { FunctionDefinition } from './workflow/languageservice/templatefunctions'; export { removeUTFExpressions } from './workflow/languageservice/workflowlanguageservice'; +export { isCustomCode } from './code/util'; diff --git a/libs/designer-ui/src/lib/settings/settingsection/settingTokenField.tsx b/libs/designer-ui/src/lib/settings/settingsection/settingTokenField.tsx index 2ae56df85d5..0ef058949b9 100644 --- a/libs/designer-ui/src/lib/settings/settingsection/settingTokenField.tsx +++ b/libs/designer-ui/src/lib/settings/settingsection/settingTokenField.tsx @@ -1,6 +1,7 @@ import { ArrayEditor } from '../../arrayeditor'; import { AuthenticationEditor } from '../../authentication'; import { CodeEditor } from '../../code'; +import { isCustomCode } from '../../code/util'; import { Combobox } from '../../combobox'; import constants from '../../constants'; import { CopyInputControl } from '../../copyinputcontrol'; @@ -158,9 +159,9 @@ export const TokenField = ({ ); case constants.PARAMETER.EDITOR.CODE: return (() => { - const isCustomCode = editorOptions?.language !== constants.PARAMETER.EDITOR_OPTIONS.LANGUAGE.JAVASCRIPT; + const customCodeEditor = isCustomCode(editor, editorOptions?.language); const initialValue = - editorOptions?.language && isCustomCode ? [createLiteralValueSegment(editorViewModel?.customCodeData?.fileData)] : value; + editorOptions?.language && customCodeEditor ? [createLiteralValueSegment(editorViewModel?.customCodeData?.fileData)] : value; const language = editorOptions.language ?? EditorLanguage.javascript; return ( @@ -172,7 +173,7 @@ export const TokenField = ({ onChange={onValueChange} readonly={readOnly} placeholder={placeholder} - isCustomCode={isCustomCode} + customCodeEditor={customCodeEditor} nodeTitle={nodeTitle} /> ); diff --git a/libs/designer/src/lib/core/actions/bjsworkflow/delete.ts b/libs/designer/src/lib/core/actions/bjsworkflow/delete.ts index dbf08fca803..779e709046e 100644 --- a/libs/designer/src/lib/core/actions/bjsworkflow/delete.ts +++ b/libs/designer/src/lib/core/actions/bjsworkflow/delete.ts @@ -1,3 +1,4 @@ +import { isCustomCode } from '@microsoft/designer-ui'; import type { RootState } from '../../..'; import constants from '../../../common/constants'; import type { WorkflowNode } from '../../parsers/models/workflowNode'; @@ -11,7 +12,7 @@ import { deinitializeTokensAndVariables } from '../../state/tokens/tokensSlice'; import { clearFocusNode, deleteNode } from '../../state/workflow/workflowSlice'; import { getParameterFromName } from '../../utils/parameters/helper'; import { updateAllUpstreamNodes } from './initialize'; -import { WORKFLOW_NODE_TYPES, getRecordEntry, CustomCodeService } from '@microsoft/logic-apps-shared'; +import { WORKFLOW_NODE_TYPES, getRecordEntry } from '@microsoft/logic-apps-shared'; import type { Dispatch } from '@reduxjs/toolkit'; import { createAsyncThunk } from '@reduxjs/toolkit'; import { batch } from 'react-redux'; @@ -56,7 +57,7 @@ const deleteCustomCodeInfo = (nodeId: string, dispatch: Dispatch, state: RootSta const nodeInputs = getRecordEntry(state.operations.inputParameters, nodeId); if (nodeInputs) { const parameter = getParameterFromName(nodeInputs, constants.DEFAULT_CUSTOM_CODE_INPUT); - if (CustomCodeService().isCustomCode(parameter?.editor, parameter?.editorOptions?.language)) { + if (isCustomCode(parameter?.editor, parameter?.editorOptions?.language)) { const fileName = parameter?.editorViewModel?.customCodeData?.fileName; // if the file name is not present, then it is a new custom code and we just need to remove the file data dispatch(deleteCustomCode({ nodeId, fileName })); diff --git a/libs/designer/src/lib/ui/panel/nodeDetailsPanel/nodeDetailsPanel.tsx b/libs/designer/src/lib/ui/panel/nodeDetailsPanel/nodeDetailsPanel.tsx index 1bab4a53b58..84da43e59a8 100644 --- a/libs/designer/src/lib/ui/panel/nodeDetailsPanel/nodeDetailsPanel.tsx +++ b/libs/designer/src/lib/ui/panel/nodeDetailsPanel/nodeDetailsPanel.tsx @@ -25,9 +25,8 @@ import { CommentMenuItem } from '../../menuItems/commentMenuItem'; import { DeleteMenuItem } from '../../menuItems/deleteMenuItem'; import { usePanelTabs } from './usePanelTabs'; import type { CommonPanelProps, PageActionTelemetryData } from '@microsoft/designer-ui'; -import { PanelContainer, PanelScope, PanelSize } from '@microsoft/designer-ui'; +import { PanelContainer, PanelScope, PanelSize, isCustomCode } from '@microsoft/designer-ui'; import { - CustomCodeService, WorkflowService, SUBGRAPH_TYPES, isNullOrUndefined, @@ -117,7 +116,7 @@ export const NodeDetailsPanel = (props: CommonPanelProps): JSX.Element => { // delete the existing custom code file name and upload the new file with updated name const onTitleBlur = (prevTitle: string) => { const parameter = getParameterFromName(inputs, constants.DEFAULT_CUSTOM_CODE_INPUT); - if (parameter && CustomCodeService().isCustomCode(parameter?.editor, parameter?.editorOptions?.language)) { + if (parameter && isCustomCode(parameter?.editor, parameter?.editorOptions?.language)) { const newFileName = getCustomCodeFileName(selectedNode, inputs, idReplacements); const [, fileExtension] = splitFileName(newFileName); const oldFileName = replaceWhiteSpaceWithUnderscore(prevTitle) + fileExtension; diff --git a/libs/designer/src/lib/ui/panel/nodeDetailsPanel/tabs/parametersTab/index.tsx b/libs/designer/src/lib/ui/panel/nodeDetailsPanel/tabs/parametersTab/index.tsx index bc9504db5dc..3a810c4f602 100644 --- a/libs/designer/src/lib/ui/panel/nodeDetailsPanel/tabs/parametersTab/index.tsx +++ b/libs/designer/src/lib/ui/panel/nodeDetailsPanel/tabs/parametersTab/index.tsx @@ -48,11 +48,11 @@ import { TokenPicker, TokenPickerButtonLocation, TokenType, + isCustomCode, toCustomEditorAndOptions, } from '@microsoft/designer-ui'; import type { ChangeState, ParameterInfo, ValueSegment, OutputToken, TokenPickerMode, PanelTabFn } from '@microsoft/designer-ui'; import { - CustomCodeService, EditorService, equals, getPropertyValue, @@ -234,7 +234,7 @@ const ParameterSection = ({ } } - if (CustomCodeService().isCustomCode(parameter?.editor, parameter?.editorOptions?.language)) { + if (isCustomCode(parameter?.editor, parameter?.editorOptions?.language)) { const { fileData, fileExtension, fileName } = viewModel.customCodeData; dispatch(addOrUpdateCustomCode({ nodeId, fileData, fileExtension, fileName })); } diff --git a/libs/logic-apps-shared/src/designer-client-services/lib/customcode.ts b/libs/logic-apps-shared/src/designer-client-services/lib/customcode.ts index b7b91892d98..0d515e297b4 100644 --- a/libs/logic-apps-shared/src/designer-client-services/lib/customcode.ts +++ b/libs/logic-apps-shared/src/designer-client-services/lib/customcode.ts @@ -16,19 +16,7 @@ export interface VFSObject { path: string; } -export const CustomCodeConstants = { - EDITOR: { - CODE: 'code', - }, - EDITOR_OPTIONS: { - LANGUAGE: { - JAVASCRIPT: 'javascript', - }, - }, -}; - export interface ICustomCodeService { - isCustomCode(editor?: string, language?: string): boolean; getAllCustomCodeFiles(): Promise; getCustomCodeFile(fileName: string): Promise; uploadCustomCode(customCode: UploadCustomCode): Promise; diff --git a/libs/logic-apps-shared/src/designer-client-services/lib/standard/customcode.ts b/libs/logic-apps-shared/src/designer-client-services/lib/standard/customcode.ts index b84fce0ec62..ed77944cc20 100644 --- a/libs/logic-apps-shared/src/designer-client-services/lib/standard/customcode.ts +++ b/libs/logic-apps-shared/src/designer-client-services/lib/standard/customcode.ts @@ -1,7 +1,5 @@ import type { ICustomCodeService, UploadCustomCode, VFSObject } from '../customcode'; -import { CustomCodeConstants } from '../customcode'; import type { IHttpClient } from '../httpClient'; -import { equals } from '@microsoft/logic-apps-shared'; export interface CustomCodeServiceOptions { apiVersion: string; @@ -33,10 +31,6 @@ export class StandardCustomCodeService implements ICustomCodeService { } } - isCustomCode(editor?: string, language?: string): boolean { - return equals(editor, CustomCodeConstants.EDITOR.CODE) && !equals(language, CustomCodeConstants.EDITOR_OPTIONS.LANGUAGE.JAVASCRIPT); - } - async getAllCustomCodeFiles(): Promise { const { apiVersion, baseUrl, subscriptionId, resourceGroup, appName, workflowName, httpClient } = this.options; const uri = `${baseUrl}/subscriptions/${subscriptionId}/resourceGroups/${resourceGroup}/providers/Microsoft.Web/sites/${appName}/hostruntime/admin/vfs/${workflowName}`;