From 90456ca3b1a1796e3289d97e6093753532e01158 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 23 Dec 2025 01:03:21 +0000 Subject: [PATCH 1/3] Refactor AddGuestsDialog to use resetDialogState function Co-authored-by: eric.okuma --- .../dialogs/AddGuestsDialog.svelte | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte b/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte index e2f13f2600c..625f94afb68 100644 --- a/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte +++ b/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte @@ -43,6 +43,14 @@ let projectDropdownOpen = false; let selectedRole: "admin" | "editor" | "viewer" = "viewer"; let roleDropdownOpen = false; + let hasAutoSelectedProject = false; + + function resetDialogState() { + failedInvites = []; + selectedProjects = []; + selectedRole = "viewer"; + hasAutoSelectedProject = false; + } // Projects list $: projectsQuery = createAdminServiceListProjectsForOrganization( @@ -63,6 +71,14 @@ $: selectedRoleLabel = ORG_ROLES_OPTIONS.find((o) => o.value === selectedRole)?.label ?? ""; + $: if (open && !hasAutoSelectedProject && projects.length > 0) { + const firstProjectName = projects[0]?.name; + if (firstProjectName) { + selectedProjects = [firstProjectName]; + hasAutoSelectedProject = true; + } + } + function toggleProjectSelection(projectName: string) { const idx = selectedProjects.indexOf(projectName); if (idx >= 0) { @@ -153,8 +169,7 @@ if (failedInvites.length === 0) { open = false; - selectedProjects = []; - selectedRole = "viewer"; + resetDialogState(); } }, validationMethod: "oninput", @@ -173,15 +188,11 @@ onOutsideClick={(e) => { e.preventDefault(); open = false; - failedInvites = []; - selectedProjects = []; - selectedRole = "viewer"; + resetDialogState(); }} - onOpenChange={(open) => { - if (!open) { - failedInvites = []; - selectedProjects = []; - selectedRole = "viewer"; + onOpenChange={(dialogOpen) => { + if (!dialogOpen) { + resetDialogState(); } }} > @@ -253,7 +264,7 @@ toggleProjectSelection(p.name)} + onCheckedChange={() => toggleProjectSelection(p.name)} > {p.name} From a753fc42b7b786711b7965c28661ee486f2f935e Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 23 Dec 2025 01:15:22 +0000 Subject: [PATCH 2/3] Refactor AddGuestsDialog to use computed property for selected projects Co-authored-by: eric.okuma --- .../user-management/dialogs/AddGuestsDialog.svelte | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte b/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte index 625f94afb68..a652d7a1da9 100644 --- a/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte +++ b/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte @@ -71,6 +71,12 @@ $: selectedRoleLabel = ORG_ROLES_OPTIONS.find((o) => o.value === selectedRole)?.label ?? ""; + $: selectedProjectsLabel = (() => { + if (selectedProjects.length === 0) return "Select projects"; + if (selectedProjects.length === 1) return selectedProjects[0]; + return `${selectedProjects.length} Project${selectedProjects.length > 1 ? "s" : ""}`; + })(); + $: if (open && !hasAutoSelectedProject && projects.length > 0) { const firstProjectName = projects[0]?.name; if (firstProjectName) { @@ -249,9 +255,7 @@ : 'hover:bg-slate-100'} px-2 py-1" > - {selectedProjects.length > 0 - ? `${selectedProjects.length} Project${selectedProjects.length > 1 ? "s" : ""}` - : "Select projects"} + {selectedProjectsLabel} {#if projectDropdownOpen} From cb6c2cf974460d82b24af87f11b318b624de4f56 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 23 Dec 2025 01:22:10 +0000 Subject: [PATCH 3/3] Fix: Prevent closing AddGuestsDialog on project selection Co-authored-by: eric.okuma --- .../user-management/dialogs/AddGuestsDialog.svelte | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte b/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte index a652d7a1da9..9838f58d81c 100644 --- a/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte +++ b/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte @@ -248,7 +248,10 @@ {:else if projects.length === 0}
No projects
{:else} - +