diff --git a/modules/desktop/electron/libs/package.ts b/modules/desktop/electron/libs/package.ts index 5a43153..efb03c6 100644 --- a/modules/desktop/electron/libs/package.ts +++ b/modules/desktop/electron/libs/package.ts @@ -33,7 +33,8 @@ export async function loadPackageCache(): Promise { if (pkgs?.packages) { // Remove any temporary properties that may have been added to the package (like installation progress) for (const [key, value] of Object.entries(pkgs.packages)) { - const { install_progress_percentage, isUninstalling, synced, ...rest } = value; + const { install_progress_percentage, isUninstalling, synced, displayState, ...rest } = + value; pkgs.packages[key] = rest; } } diff --git a/modules/desktop/package.json b/modules/desktop/package.json index 7493683..1370198 100644 --- a/modules/desktop/package.json +++ b/modules/desktop/package.json @@ -44,6 +44,7 @@ "@testing-library/svelte": "^3.2.2", "@testing-library/webdriverio": "^3.2.1", "@types/bcryptjs": "^2.4.2", + "@types/canvas-confetti": "^1.6.0", "@types/js-yaml": "^4.0.5", "@types/mixpanel-browser": "^2.38.1", "@types/testing-library__jest-dom": "^5.14.5", @@ -94,6 +95,7 @@ "axios": "^1.3.2", "bcryptjs": "^2.4.3", "buffer": "^6.0.3", + "canvas-confetti": "^1.6.0", "chokidar": "^3.5.3", "custom-electron-titlebar": "4.2.0-beta.0", "dayjs": "^1.11.7", diff --git a/modules/desktop/src/components/install-result-overlay/install-result-overlay.svelte b/modules/desktop/src/components/install-result-overlay/install-result-overlay.svelte new file mode 100644 index 0000000..6805766 --- /dev/null +++ b/modules/desktop/src/components/install-result-overlay/install-result-overlay.svelte @@ -0,0 +1,63 @@ + + +
+ {#if pkg.displayState?.kind === "INSTALLATION_ERROR"} +
+
+
Install Failed
+
+ +
+ +
+ {/if} +
diff --git a/modules/desktop/src/components/package-banner/package-banner.svelte b/modules/desktop/src/components/package-banner/package-banner.svelte index 8ffd5b2..d592562 100644 --- a/modules/desktop/src/components/package-banner/package-banner.svelte +++ b/modules/desktop/src/components/package-banner/package-banner.svelte @@ -16,6 +16,7 @@ import PackageVersionSelector from "$components/package-install-button/package-version-selector.svelte"; import { fixPackageName } from "$libs/packages/pkg-utils"; import { semverCompare } from "$libs/packages/pkg-utils"; + import InstallResultOverlay from "$components/install-result-overlay/install-result-overlay.svelte"; export let pkg: GUIPackage; let installing = false; @@ -88,6 +89,7 @@ {/if} +
diff --git a/modules/desktop/src/components/package-card/package-card.svelte b/modules/desktop/src/components/package-card/package-card.svelte index b42ff8f..ef96765 100644 --- a/modules/desktop/src/components/package-card/package-card.svelte +++ b/modules/desktop/src/components/package-card/package-card.svelte @@ -7,6 +7,7 @@ import PackageInstallButton from "$components/package-install-button/package-install-button.svelte"; import PackageInstalledBadge from "$components/package-install-button/package-installed-badge.svelte"; import { fixPackageName } from "$libs/packages/pkg-utils"; + import InstallResultOverlay from "$components/install-result-overlay/install-result-overlay.svelte"; export let pkg: GUIPackage; export let link: string; @@ -26,74 +27,77 @@ const preventPropagation = (evt: MouseEvent) => evt.stopPropagation(); -
- +
+ +