From b7c5d6916e41ad4418d4c748506566d7df24b29b Mon Sep 17 00:00:00 2001
From: carsakiller <carsakiller@gmail.com>
Date: Thu, 2 Mar 2023 22:27:39 -0500
Subject: [PATCH] fix: error when no workspace opened

---
 client/src/addon_manager/commands/disable.ts          | 2 +-
 client/src/addon_manager/commands/enable.ts           | 2 +-
 client/src/addon_manager/panels/WebVue.ts             | 2 +-
 client/src/addon_manager/services/settings.service.ts | 2 ++
 4 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/client/src/addon_manager/commands/disable.ts b/client/src/addon_manager/commands/disable.ts
index 4f1dea1..e2b3dce 100644
--- a/client/src/addon_manager/commands/disable.ts
+++ b/client/src/addon_manager/commands/disable.ts
@@ -17,7 +17,7 @@ export default async (context: vscode.ExtensionContext, message: Message) => {
 
     let selectedFolders: vscode.WorkspaceFolder[];
 
-    if (workspaceFolders.length === 1) {
+    if (workspaceFolders && workspaceFolders.length === 1) {
         selectedFolders = [workspaceFolders[0]];
     } else {
         const folderOptions = await addon.getQuickPickerOptions(true);
diff --git a/client/src/addon_manager/commands/enable.ts b/client/src/addon_manager/commands/enable.ts
index 5cb97d8..64dce51 100644
--- a/client/src/addon_manager/commands/enable.ts
+++ b/client/src/addon_manager/commands/enable.ts
@@ -16,7 +16,7 @@ export default async (context: vscode.ExtensionContext, message: Message) => {
     const workspaceFolders = vscode.workspace.workspaceFolders;
     let selectedFolders: vscode.WorkspaceFolder[];
 
-    if (workspaceFolders.length === 1) {
+    if (workspaceFolders && workspaceFolders.length === 1) {
         selectedFolders = [workspaceFolders[0]];
     } else {
         const folderOptions = await addon.getQuickPickerOptions(false);
diff --git a/client/src/addon_manager/panels/WebVue.ts b/client/src/addon_manager/panels/WebVue.ts
index 673b6ec..8c9c38d 100644
--- a/client/src/addon_manager/panels/WebVue.ts
+++ b/client/src/addon_manager/panels/WebVue.ts
@@ -80,7 +80,7 @@ export class WebVue {
             WebVue.currentPanel = new WebVue(context, panel);
         }
 
-        const workspaceOpen = vscode.workspace.workspaceFolders.length > 0;
+        const workspaceOpen = vscode.workspace.workspaceFolders && vscode.workspace.workspaceFolders.length > 0;
         const clientVersion = context.extension.packageJSON.version;
 
         WebVue.sendMessage("appStore", {
diff --git a/client/src/addon_manager/services/settings.service.ts b/client/src/addon_manager/services/settings.service.ts
index 7221419..0ec2b20 100644
--- a/client/src/addon_manager/services/settings.service.ts
+++ b/client/src/addon_manager/services/settings.service.ts
@@ -21,6 +21,8 @@ export const getLibraryPaths = async (): Promise<
 > => {
     const result = [];
 
+    if (!vscode.workspace.workspaceFolders) return [];
+
     for (const folder of vscode.workspace.workspaceFolders) {
         const libraries = await getConfig(LIBRARY_SETTING, folder.uri);
         result.push({ folder, paths: libraries ?? [] });
-- 
GitLab