From dbd68ef17dc9a5a64d0a736c0d3d9184bd4f737d Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 6 Jan 2026 16:18:16 +0000 Subject: [PATCH 1/5] Refactor AddGuestsDialog to use Dropdown.CheckboxItem for roles Co-authored-by: eric.okuma --- .../dialogs/AddGuestsDialog.svelte | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 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 9838f58d81c..5d12c2a987c 100644 --- a/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte +++ b/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte @@ -253,9 +253,9 @@ closeOnItemClick={false} > {selectedProjectsLabel} @@ -286,9 +286,9 @@
Access level
{selectedRoleLabel} {#if roleDropdownOpen} @@ -298,15 +298,16 @@ {/if} - (selectedRole = "admin")} - >Admin - (selectedRole = "editor")} - >Editor - (selectedRole = "viewer")} - >Viewer + {#each ORG_ROLES_OPTIONS as option} + { + if (checked) selectedRole = option.value; + }} + > + {option.label} + + {/each} From 09d6ff35af107389babb0482607464692f1d3ee7 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 6 Jan 2026 16:38:15 +0000 Subject: [PATCH 2/5] Refactor: Reset dialog state in AddGuestsDialog Co-authored-by: eric.okuma --- .../dialogs/AddGuestsDialog.svelte | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 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 5d12c2a987c..d9c4aa9b19f 100644 --- a/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte +++ b/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte @@ -38,18 +38,20 @@ const queryClient = useQueryClient(); const addProjectMemberUser = createAdminServiceAddProjectMemberUser(); - let failedInvites: string[] = []; - let selectedProjects: string[] = []; - let projectDropdownOpen = false; - let selectedRole: "admin" | "editor" | "viewer" = "viewer"; - let roleDropdownOpen = false; - let hasAutoSelectedProject = false; +let failedInvites: string[] = []; +let selectedProjects: string[] = []; +let projectDropdownOpen = false; +let selectedRole: "admin" | "editor" | "viewer" = "viewer"; +let roleDropdownOpen = false; +let hasAutoSelectedProject = false; function resetDialogState() { failedInvites = []; selectedProjects = []; selectedRole = "viewer"; hasAutoSelectedProject = false; + projectDropdownOpen = false; + roleDropdownOpen = false; } // Projects list @@ -94,6 +96,7 @@ } else { selectedProjects = [...selectedProjects, projectName]; } + projectDropdownOpen = true; } async function handleCreate(email: string) { From 55222e791930c03af56d9076023d5ddd6e9c8004 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 6 Jan 2026 17:06:02 +0000 Subject: [PATCH 3/5] Refactor: Improve dialog styling and reset logic Adjusted min-height for dropdown triggers and ensured proper reset of dialog state variables. Co-authored-by: eric.okuma --- .../dialogs/AddGuestsDialog.svelte | 22 +++++++++---------- 1 file changed, 11 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 d9c4aa9b19f..da4c9c3e305 100644 --- a/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte +++ b/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte @@ -38,20 +38,20 @@ const queryClient = useQueryClient(); const addProjectMemberUser = createAdminServiceAddProjectMemberUser(); -let failedInvites: string[] = []; -let selectedProjects: string[] = []; -let projectDropdownOpen = false; -let selectedRole: "admin" | "editor" | "viewer" = "viewer"; -let roleDropdownOpen = false; -let hasAutoSelectedProject = false; + let failedInvites: string[] = []; + let selectedProjects: string[] = []; + let projectDropdownOpen = false; + let selectedRole: "admin" | "editor" | "viewer" = "viewer"; + let roleDropdownOpen = false; + let hasAutoSelectedProject = false; function resetDialogState() { failedInvites = []; selectedProjects = []; selectedRole = "viewer"; hasAutoSelectedProject = false; - projectDropdownOpen = false; - roleDropdownOpen = false; + projectDropdownOpen = false; + roleDropdownOpen = false; } // Projects list @@ -96,7 +96,7 @@ let hasAutoSelectedProject = false; } else { selectedProjects = [...selectedProjects, projectName]; } - projectDropdownOpen = true; + projectDropdownOpen = true; } async function handleCreate(email: string) { @@ -256,7 +256,7 @@ let hasAutoSelectedProject = false; closeOnItemClick={false} > @@ -289,7 +289,7 @@ let hasAutoSelectedProject = false;
Access level
From f59865060133630892efbccdc0c8e55c43a7d10c Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 13 Jan 2026 19:29:39 +0000 Subject: [PATCH 4/5] fix: use OrgUserRoles enum type for selectedRole in AddGuestsDialog Fix TypeScript error where option.value (OrgUserRoles enum) was being assigned to selectedRole (string literal union type). Both types now use OrgUserRoles for type compatibility. --- .../user-management/dialogs/AddGuestsDialog.svelte | 5 +++-- 1 file changed, 3 insertions(+), 2 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 da4c9c3e305..fe537c44aa4 100644 --- a/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte +++ b/web-admin/src/features/organizations/user-management/dialogs/AddGuestsDialog.svelte @@ -26,6 +26,7 @@ import { eventBus } from "@rilldata/web-common/lib/event-bus/event-bus"; import { getRpcErrorMessage } from "@rilldata/web-admin/components/errors/error-utils"; import { ORG_ROLES_OPTIONS } from "@rilldata/web-admin/features/organizations/constants"; + import { OrgUserRoles } from "@rilldata/web-common/features/users/roles"; import { useQueryClient } from "@tanstack/svelte-query"; import { defaults, superForm } from "sveltekit-superforms"; import { yup } from "sveltekit-superforms/adapters"; @@ -41,14 +42,14 @@ let failedInvites: string[] = []; let selectedProjects: string[] = []; let projectDropdownOpen = false; - let selectedRole: "admin" | "editor" | "viewer" = "viewer"; + let selectedRole: OrgUserRoles = OrgUserRoles.Viewer; let roleDropdownOpen = false; let hasAutoSelectedProject = false; function resetDialogState() { failedInvites = []; selectedProjects = []; - selectedRole = "viewer"; + selectedRole = OrgUserRoles.Viewer; hasAutoSelectedProject = false; projectDropdownOpen = false; roleDropdownOpen = false; From f0cab7902b924d80faaed7b58ce261549d4f17f7 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 13 Jan 2026 19:46:47 +0000 Subject: [PATCH 5/5] ci: trigger re-run of e2e tests