From 2f133f4b77d1c29185d04594b3ea12b10cdb640d Mon Sep 17 00:00:00 2001 From: ABevier Date: Thu, 8 Jun 2023 20:11:05 -0400 Subject: [PATCH] Show UPDATED status (#658) --- .../install-result-overlay.svelte | 7 ++-- .../package-card/package-card.svelte | 41 +++++++++++++++---- .../package-install-button.svelte | 4 +- .../package-installed-badge.svelte | 6 +-- .../src/components/packages/packages.svelte | 6 ++- .../desktop/src/libs/packages/pkg-utils.ts | 19 +++++++++ modules/desktop/src/libs/stores/pkgs.ts | 29 +++++++++---- .../src/libs/translations/languages/en.json | 1 + modules/desktop/src/libs/types.ts | 11 ++--- modules/desktop/src/routes/+layout.svelte | 3 ++ modules/desktop/src/routes/+page.svelte | 1 - modules/desktop/test/specs/app.e2e.ts | 3 +- modules/desktop/test/specs/utils.ts | 2 +- 13 files changed, 98 insertions(+), 35 deletions(-) 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 index 6805766..79c9f12 100644 --- a/modules/desktop/src/components/install-result-overlay/install-result-overlay.svelte +++ b/modules/desktop/src/components/install-result-overlay/install-result-overlay.svelte @@ -4,6 +4,7 @@ import { afterUpdate } from "svelte"; import { packagesStore } from "$libs/stores"; import Button from "@tea/ui/button/button.svelte"; + import { packageHadError, packageWasInstalled } from "$libs/packages/pkg-utils"; let root: HTMLElement | undefined; @@ -28,7 +29,7 @@ const myConfetti = confetti.create(canvas, { resize: true }); await myConfetti({ particleCount: 500, spread: 360, startVelocity: 20, gravity: 0.5 }); - root.removeChild(canvas); + root?.removeChild(canvas); isAnimating = false; } }; @@ -39,14 +40,14 @@ }; afterUpdate(() => { - if (pkg.displayState?.kind === "INSTALLED_SUCCESSFULLY") { + if (packageWasInstalled(pkg)) { playConfetti(); } });
- {#if pkg.displayState?.kind === "INSTALLATION_ERROR"} + {#if packageHadError(pkg)}
diff --git a/modules/desktop/src/components/package-card/package-card.svelte b/modules/desktop/src/components/package-card/package-card.svelte index ef96765..088cbf9 100644 --- a/modules/desktop/src/components/package-card/package-card.svelte +++ b/modules/desktop/src/components/package-card/package-card.svelte @@ -2,7 +2,7 @@ import "../../app.css"; import ProgressCircle from "@tea/ui/progress-circle/progress-circle.svelte"; import { PackageStates, type GUIPackage } from "$libs/types"; - import { findRecentInstalledVersion } from "$libs/packages/pkg-utils"; + import { findRecentInstalledVersion, packageWasUpdated } from "$libs/packages/pkg-utils"; import BgImage from "./bg-image.svelte"; import PackageInstallButton from "$components/package-install-button/package-install-button.svelte"; import PackageInstalledBadge from "$components/package-install-button/package-installed-badge.svelte"; @@ -28,7 +28,11 @@
-
+
{#if layout === "bottom"} -

- {fixPackageName(pkg.name)} -

+
+

+ {fixPackageName(pkg.name)} +

+ {#if pkg.state === PackageStates.INSTALLED} + + {/if} +

{pkg.desc ?? ""}

{:else} -

- {fixPackageName(pkg.name)} -

+
+

+ {fixPackageName(pkg.name)} +

+ {#if pkg.state === PackageStates.INSTALLED} + + {/if} +

{pkg.desc ?? ""}

@@ -125,6 +139,15 @@ box-shadow: 0px 0px 0px 2px rgba(128, 0, 255, 0.5); } + section.package-card.updated { + border-color: #00ffd0; + } + + section.package-card.updated:active { + border-color: #00ffd0; + box-shadow: 0px 0px 0px 2px rgba(0, 255, 208, 0.5); + } + .content-container { height: 50%; background: linear-gradient(180deg, rgba(26, 26, 26, 0.3) 0%, rgba(26, 26, 26, 0.75) 72.92%); diff --git a/modules/desktop/src/components/package-install-button/package-install-button.svelte b/modules/desktop/src/components/package-install-button/package-install-button.svelte index c083bc4..b721f46 100644 --- a/modules/desktop/src/components/package-install-button/package-install-button.svelte +++ b/modules/desktop/src/components/package-install-button/package-install-button.svelte @@ -1,7 +1,7 @@