diff --git a/Composer/packages/client/src/components/CreationFlow/v2/CreateOptions.tsx b/Composer/packages/client/src/components/CreationFlow/v2/CreateOptions.tsx index 9100532816..1aef638ffd 100644 --- a/Composer/packages/client/src/components/CreationFlow/v2/CreateOptions.tsx +++ b/Composer/packages/client/src/components/CreationFlow/v2/CreateOptions.tsx @@ -47,19 +47,21 @@ export function CreateOptionsV2(props: CreateOptionsProps) { const decoded = decodeURIComponent(props.location.search); const { source, payload } = querystring.parse(decoded); if (typeof source === 'string' && typeof payload === 'string') { - const alias = getAliasFromPayload(source, payload); - // check to see if Composer currently has a bot project corresponding to the alias - axios - .get(`/api/projects/alias/${alias}`) - .then((aliasRes) => { - if (aliasRes.status === 200) { - navigate(`/bot/${aliasRes.data.id}`); - return; - } - }) - .catch((e) => { - setIsOpenOptionsModal(true); - }); + getAliasFromPayload(source, payload).then((alias) => { + // check to see if Composer currently has a bot project corresponding to the alias + axios + .get(`/api/projects/alias/${alias}`) + .then((aliasRes) => { + if (aliasRes.status === 200) { + navigate(`/bot/${aliasRes.data.id}`); + return; + } + }) + .catch((e) => { + setIsOpenOptionsModal(true); + }); + }); + return; } } diff --git a/Composer/packages/client/src/recoilModel/dispatchers/project.ts b/Composer/packages/client/src/recoilModel/dispatchers/project.ts index 5d98733b2c..a80ffdc9cc 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/project.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/project.ts @@ -36,6 +36,7 @@ import { projectMetaDataState, selectedTemplateReadMeState, showCreateQnAFromUrlDialogState, + settingsState, } from '../atoms'; import { botRuntimeOperationsSelector, rootBotProjectIdSelector } from '../selectors'; import { mergePropertiesManagedByRootBot, postRootBotCreation } from '../../recoilModel/dispatchers/utils/project'; @@ -256,10 +257,15 @@ export const projectDispatcher = () => { if (profile && alias) { const dispatcher = await snapshot.getPromise(dispatcherState); + const { publishTargets } = await snapshot.getPromise(settingsState(projectId)); const newProfile = await getPublishProfileFromPayload(profile, source); - - newProfile && dispatcher.setPublishTargets([newProfile], projectId); - + if (newProfile) { + const newPublishTargets = publishTargets + ? publishTargets.filter((item) => item.name !== newProfile.name) + : []; + newPublishTargets.push(newProfile); + dispatcher.setPublishTargets(newPublishTargets, projectId); + } await httpClient.post(`/projects/${projectId}/alias/set`, { alias }); } }