From 73155dcb46586e1e65be0b85fc1061a3377fb26f Mon Sep 17 00:00:00 2001 From: Max Richter Date: Thu, 7 May 2026 17:01:22 +0200 Subject: [PATCH] feat: show confirm when deleting project --- .../lib/project-manager/ProjectManager.svelte | 65 ++++++++----- .../project-manager/project-manager.svelte.ts | 4 +- packages/ui/src/lib/ConfirmDialog.svelte | 91 +++++++++++++++++++ 3 files changed, 137 insertions(+), 23 deletions(-) create mode 100644 packages/ui/src/lib/ConfirmDialog.svelte diff --git a/app/src/lib/project-manager/ProjectManager.svelte b/app/src/lib/project-manager/ProjectManager.svelte index 88486dc..f64f491 100644 --- a/app/src/lib/project-manager/ProjectManager.svelte +++ b/app/src/lib/project-manager/ProjectManager.svelte @@ -1,7 +1,7 @@

Project

- +
{#if showNewProject} @@ -53,20 +64,11 @@ onkeydown={(e) => e.key === 'Enter' && handleCreate()} /> t.name)} bind:value={selectedTemplateIndex} /> - + {/if}
- {#if projectManager.loading} -

Loading...

- {/if} -
    {#each projectManager.projects as project (project.id)}
  • @@ -89,16 +91,35 @@
    {project.meta?.title || 'Untitled'}
+ {:else} + {#if projectManager.loading} +
+ +

Loading

+
+ {:else} +
  • + No projects yet.
    Press New to create one. +
  • + {/if} {/each} + + diff --git a/app/src/lib/project-manager/project-manager.svelte.ts b/app/src/lib/project-manager/project-manager.svelte.ts index f69071e..f6f53dd 100644 --- a/app/src/lib/project-manager/project-manager.svelte.ts +++ b/app/src/lib/project-manager/project-manager.svelte.ts @@ -10,7 +10,9 @@ export class ProjectManager { 'node.activeProjectId', undefined ); - public readonly loading = $derived(this.graph?.id !== this.activeProjectId.value); + public readonly loading = $derived( + this.projects.length && this.graph?.id !== this.activeProjectId.value + ); constructor() { this.init(); diff --git a/packages/ui/src/lib/ConfirmDialog.svelte b/packages/ui/src/lib/ConfirmDialog.svelte new file mode 100644 index 0000000..8e5f0cb --- /dev/null +++ b/packages/ui/src/lib/ConfirmDialog.svelte @@ -0,0 +1,91 @@ + + + + { if (e.target === dialogEl) cancel(); }} +> +
    +

    {title}

    + {#if message} +

    {message}

    + {/if} + {#if children} +
    + {@render children()} +
    + {/if} +
    + + +
    +
    +
    + +