From 85ae0a57c39fc74de5062742e61bf9e7657079b5 Mon Sep 17 00:00:00 2001 From: Simula_r <18093452+simula-r@users.noreply.github.com> Date: Wed, 11 Feb 2026 21:15:59 -0800 Subject: [PATCH] feat: invite member upsell for single-seat plans (#8801) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Show an upsell dialog when single-seat plan users try to invite members, with a banner on the members panel directing them to upgrade. - Misc fixes for member max seat display ## Changes - **What**: `InviteMemberUpsellDialogContent.vue`, `MembersPanelContent.vue`, `WorkspacePanelContent.vue` ## Screenshots image image ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8801-feat-invite-member-upsell-for-single-seat-plans-3046d73d365081349b09fe1d4dc572e8) by [Unito](https://www.unito.io) --------- Co-authored-by: Claude Opus 4.6 Co-authored-by: GitHub Action --- .../content/setting/MembersPanelContent.vue | 102 ++++++++++---- .../content/setting/WorkspacePanelContent.vue | 26 +++- .../InviteMemberUpsellDialogContent.vue | 68 ++++++++++ src/components/toast/InviteAcceptedToast.vue | 42 ++++++ src/composables/billing/types.ts | 2 + .../billing/useBillingContext.test.ts | 127 ++++++++++++++---- src/composables/billing/useBillingContext.ts | 16 +++ src/locales/en/main.json | 20 ++- .../components/PricingTableWorkspace.vue | 11 +- .../SubscriptionPanelContentWorkspace.vue | 48 +++---- .../subscription/constants/tierPricing.ts | 7 + src/platform/workspace/api/workspaceApi.ts | 26 ---- .../composables/useInviteUrlLoader.test.ts | 9 +- .../composables/useInviteUrlLoader.ts | 17 ++- src/services/dialogService.ts | 17 +++ src/views/GraphView.vue | 2 + 16 files changed, 411 insertions(+), 129 deletions(-) create mode 100644 src/components/dialog/content/workspace/InviteMemberUpsellDialogContent.vue create mode 100644 src/components/toast/InviteAcceptedToast.vue diff --git a/src/components/dialog/content/setting/MembersPanelContent.vue b/src/components/dialog/content/setting/MembersPanelContent.vue index 46a455e35e..9f8d303173 100644 --- a/src/components/dialog/content/setting/MembersPanelContent.vue +++ b/src/components/dialog/content/setting/MembersPanelContent.vue @@ -6,14 +6,15 @@
- + @@ -27,7 +28,10 @@
-
+
-
+
- -
+
@@ -166,7 +174,7 @@ :class=" cn( 'grid w-full items-center rounded-lg p-2', - uiConfig.membersGridCols, + isSingleSeatPlan ? 'grid-cols-1' : uiConfig.membersGridCols, index % 2 === 1 && 'bg-secondary-background/50' ) " @@ -206,14 +214,14 @@
{{ formatDate(member.joinDate) }}
+
+ -