diff --git a/Composer/packages/client/__tests__/components/CreationFlow/DefineConversation/index.test.tsx b/Composer/packages/client/__tests__/components/CreationFlow/DefineConversation/index.test.tsx
index e1995dba1f..eabc9d6dcc 100644
--- a/Composer/packages/client/__tests__/components/CreationFlow/DefineConversation/index.test.tsx
+++ b/Composer/packages/client/__tests__/components/CreationFlow/DefineConversation/index.test.tsx
@@ -75,13 +75,24 @@ describe('', () => {
const component = renderComponent();
const node = await component.findByText('OK');
fireEvent.click(node);
- expect(onSubmitMock).toHaveBeenCalledWith({
- description: 'Test Echo',
- name: 'EchoBot-11299',
- location: '',
- schemaUrl:
- 'https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema',
- });
+ expect(
+ onSubmitMock.mock.calls[0][0] ===
+ {
+ description: 'Test Echo',
+ name: 'EchoBot-11299',
+ location: '\\test-folder\\Desktop',
+ schemaUrl:
+ 'https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema',
+ } ||
+ onSubmitMock.mock.calls[0][0] ===
+ {
+ description: 'Test Echo',
+ name: 'EchoBot-11299',
+ location: '/test-folder/Desktop',
+ schemaUrl:
+ 'https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema',
+ }
+ ).toBeTruthy;
});
it('does not allow submission when the name is invalid', async () => {
diff --git a/Composer/packages/client/__tests__/components/CreationFlow/index.test.tsx b/Composer/packages/client/__tests__/components/CreationFlow/index.test.tsx
index aa9574eee5..9851688ad6 100644
--- a/Composer/packages/client/__tests__/components/CreationFlow/index.test.tsx
+++ b/Composer/packages/client/__tests__/components/CreationFlow/index.test.tsx
@@ -66,7 +66,7 @@ describe('', () => {
storeContext.state.templateId = 'EchoBot';
storeContext.actions.createProject = async (templateId, name, description, location) => {
expect(templateId).toBe(expectedTemplateId);
- expect(location === '').toBeTruthy();
+ expect(location === '/test-folder/Desktop' || location === '\\test-folder\\Desktop').toBeTruthy();
};
storeContext.state.focusedStorageFolder = {
name: 'Desktop',
diff --git a/Composer/packages/client/src/components/CreationFlow/DefineConversation/DefineConversation.tsx b/Composer/packages/client/src/components/CreationFlow/DefineConversation/DefineConversation.tsx
index 53938b17f6..7aeef71014 100644
--- a/Composer/packages/client/src/components/CreationFlow/DefineConversation/DefineConversation.tsx
+++ b/Composer/packages/client/src/components/CreationFlow/DefineConversation/DefineConversation.tsx
@@ -103,6 +103,10 @@ const DefineConversation: React.FC = (props) => {
},
location: {
required: true,
+ defaultValue:
+ focusedStorageFolder !== null && Object.keys(focusedStorageFolder as Record).length
+ ? Path.join(focusedStorageFolder.parent, focusedStorageFolder.name)
+ : '',
},
};
const { formData, formErrors, hasErrors, updateField, updateForm } = useForm(formConfig);
@@ -118,7 +122,10 @@ const DefineConversation: React.FC = (props) => {
name: getDefaultName(),
description: '',
schemaUrl: '',
- location: '',
+ location:
+ focusedStorageFolder !== null && Object.keys(focusedStorageFolder as Record).length
+ ? Path.join(focusedStorageFolder.parent, focusedStorageFolder.name)
+ : '',
};
updateForm(formData);
if (props.location?.search) {
@@ -159,19 +166,19 @@ const DefineConversation: React.FC = (props) => {
[hasErrors, formData]
);
- const updateLocation = (location: string) => {
- const updatedFormData = {
- ...formData,
- location,
- };
- updateForm(updatedFormData);
- };
-
const onCurrentPathUpdateWrap = (newPath: string, storageId?: string) => {
onCurrentPathUpdate(newPath, storageId);
- updateLocation(newPath);
+ updateField('location', newPath);
};
+ useEffect(() => {
+ const location =
+ focusedStorageFolder !== null && Object.keys(focusedStorageFolder as Record).length
+ ? Path.join(focusedStorageFolder.parent, focusedStorageFolder.name)
+ : '';
+ updateField('location', location);
+ }, [focusedStorageFolder]);
+
return (