diff --git a/Composer/packages/client/src/components/ProjectTree/ProjectTree.tsx b/Composer/packages/client/src/components/ProjectTree/ProjectTree.tsx index fe9a06b5dc..49c3d1fa67 100644 --- a/Composer/packages/client/src/components/ProjectTree/ProjectTree.tsx +++ b/Composer/packages/client/src/components/ProjectTree/ProjectTree.tsx @@ -138,11 +138,12 @@ export const ProjectTree: React.FC = ({ const botProjectSpace = useRecoilValue(botProjectSpaceSelector); const notificationMap: { [projectId: string]: { [dialogId: string]: Diagnostic[] } } = {}; + for (const bot of projectCollection) { notificationMap[bot.projectId] = {}; - const matchingBot = botProjectSpace.filter((project) => project.projectId === bot.projectId)[0]; - if (matchingBot == null) continue; // should never happen, but just to be safe + const matchingBot = botProjectSpace?.filter((project) => project.projectId === bot.projectId)[0]; + if (matchingBot == null) continue; for (const dialog of matchingBot.dialogs) { const dialogId = dialog.id; @@ -151,7 +152,7 @@ export const ProjectTree: React.FC = ({ } const dialogHasWarnings = (dialog: DialogInfo) => { - notificationMap[currentProjectId][dialog.id].some((diag) => diag.severity === DiagnosticSeverity.Warning); + notificationMap[currentProjectId][dialog.id]?.some((diag) => diag.severity === DiagnosticSeverity.Warning); }; const botHasWarnings = (bot: BotInProject) => { @@ -159,7 +160,7 @@ export const ProjectTree: React.FC = ({ }; const dialogHasErrors = (dialog: DialogInfo) => { - notificationMap[currentProjectId][dialog.id].some((diag) => diag.severity === DiagnosticSeverity.Error); + notificationMap[currentProjectId][dialog.id]?.some((diag) => diag.severity === DiagnosticSeverity.Error); }; const botHasErrors = (bot: BotInProject) => { @@ -212,11 +213,11 @@ export const ProjectTree: React.FC = ({ const renderDialogHeader = (skillId: string, dialog: DialogInfo) => { const warningContent = notificationMap[currentProjectId][dialog.id] - .filter((diag) => diag.severity === DiagnosticSeverity.Warning) + ?.filter((diag) => diag.severity === DiagnosticSeverity.Warning) .map((diag) => diag.message) .join(','); const errorContent = notificationMap[currentProjectId][dialog.id] - .filter((diag) => diag.severity === DiagnosticSeverity.Error) + ?.filter((diag) => diag.severity === DiagnosticSeverity.Error) .map((diag) => diag.message) .join(','); diff --git a/Composer/packages/server/src/controllers/project.ts b/Composer/packages/server/src/controllers/project.ts index e550fa38cc..b51b657b53 100644 --- a/Composer/packages/server/src/controllers/project.ts +++ b/Composer/packages/server/src/controllers/project.ts @@ -129,10 +129,11 @@ async function openProject(req: Request, res: Response) { return; } const user = await ExtensionContext.getUserFromRequest(req); + const path = process.platform === 'win32' ? req.body.path.replace(/^\//, '') : req.body.path; const location: LocationRef = { storageId: req.body.storageId, - path: req.body.path, + path, }; try {