From 4771565486e34db560a23fa931fbe3208f4132cd Mon Sep 17 00:00:00 2001 From: Simula_r <18093452+simula-r@users.noreply.github.com> Date: Sat, 24 Jan 2026 15:52:40 -0800 Subject: [PATCH] Workspaces 4 members invites (#8245) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Add team workspace member management and invite system. ## Changes - Add members panel with role management (owner/admin/member) and member removal - Add invite system with email invites, pending invite display, and revoke functionality - Add invite URL loading for accepting invites - Add subscription panel updates for member management - Add i18n translations for member and invite features ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8245-Workspaces-4-members-invites-2f06d73d36508176b2caf852a1505c4a) by [Unito](https://www.unito.io) --------- Co-authored-by: Claude Opus 4.5 Co-authored-by: GitHub Action --- src/components/common/WorkspaceProfilePic.vue | 2 +- src/components/dialog/GlobalDialog.vue | 26 +- .../content/ConfirmationDialogContent.vue | 11 +- .../content/setting/MembersPanelContent.vue | 511 ++++++++++++++++++ .../content/setting/WorkspacePanelContent.vue | 101 +++- .../CreateWorkspaceDialogContent.vue | 3 +- .../workspace/EditWorkspaceDialogContent.vue | 2 +- .../workspace/InviteMemberDialogContent.vue | 182 +++++++ .../workspace/RemoveMemberDialogContent.vue | 83 +++ .../workspace/RevokeInviteDialogContent.vue | 79 +++ src/components/graph/GraphCanvas.vue | 22 + src/components/topbar/CurrentUserButton.vue | 2 +- .../topbar/CurrentUserPopoverWorkspace.vue | 49 +- .../topbar/WorkspaceSwitcherPopover.vue | 52 +- src/locales/en/main.json | 86 ++- .../auth/workspace/useWorkspaceAuth.test.ts | 20 +- .../components/PricingTable.test.ts | 4 +- .../components/SubscriptionPanel.vue | 6 +- .../SubscriptionPanelContentWorkspace.vue | 47 +- .../utils/subscriptionCheckoutUtil.ts | 4 +- .../navigation/preservedQueryManager.ts | 8 +- .../navigation/preservedQueryNamespaces.ts | 3 +- .../components/SettingDialogContent.vue | 24 +- src/platform/workspace/api/workspaceApi.ts | 16 +- .../composables/useInviteUrlLoader.test.ts | 232 ++++++++ .../composables/useInviteUrlLoader.ts | 107 ++++ .../workspace/composables/useWorkspaceUI.ts | 52 ++ .../workspace/stores/teamWorkspaceStore.ts | 16 +- src/router.ts | 4 + src/services/dialogService.ts | 63 ++- src/stores/workspaceAuthStore.ts | 8 +- 31 files changed, 1704 insertions(+), 121 deletions(-) create mode 100644 src/components/dialog/content/setting/MembersPanelContent.vue create mode 100644 src/components/dialog/content/workspace/InviteMemberDialogContent.vue create mode 100644 src/components/dialog/content/workspace/RemoveMemberDialogContent.vue create mode 100644 src/components/dialog/content/workspace/RevokeInviteDialogContent.vue create mode 100644 src/platform/workspace/composables/useInviteUrlLoader.test.ts create mode 100644 src/platform/workspace/composables/useInviteUrlLoader.ts diff --git a/src/components/common/WorkspaceProfilePic.vue b/src/components/common/WorkspaceProfilePic.vue index 642317267..bc147a61c 100644 --- a/src/components/common/WorkspaceProfilePic.vue +++ b/src/components/common/WorkspaceProfilePic.vue @@ -1,6 +1,6 @@