[PR #2115] [CLOSED] Add billing management section to account settings and prioritize org/team settings in dropdown #2058

Closed
opened 2026-02-26 20:32:15 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/documenso/documenso/pull/2115
Author: @Copilot
Created: 10/28/2025
Status: Closed

Base: mainHead: copilot/add-billing-section-account-page


📝 Commits (3)

  • 8b3b005 Initial plan
  • 416bc8d Improve billing settings accessibility with both solutions A and B
  • ba5007e Address code review: show actual role instead of generic message

📊 Changes

3 files changed (+89 additions, -12 deletions)

View changed files

📝 apps/remix/app/components/general/org-menu-switcher.tsx (+12 -12)
apps/remix/app/components/general/organisations/account-billing-organisations.tsx (+74 -0)
📝 apps/remix/app/routes/_authenticated+/settings+/profile.tsx (+3 -0)

📄 Description

Users frequently request support to cancel subscriptions because billing settings are hard to find. The current UX requires navigating to the correct organisation context first, then locating "Organisation settings" buried in the profile dropdown.

Changes

Billing management in account settings

  • New AccountBillingOrganisations component displays all organisations where user has MANAGE_BILLING permission
  • Shows organisation avatar, name, role, and direct link to billing page
  • Added to /settings/profile between email usage and account deletion sections
  • Conditionally renders only when billing enabled and user has permissions

Prioritized contextual settings in dropdown

  • Reordered OrgMenuSwitcher settings column to show Organisation/Team settings first (after Admin panel)
  • Moves context-relevant settings above generic options like Personal Inbox and Account

Implementation

// New component filters orgs by billing permission
const billingOrganisations = organisations.filter((org) =>
  canExecuteOrganisationAction('MANAGE_BILLING', org.currentOrganisationRole)
);

// Shows actual role instead of generic label
secondaryText={
  org.ownerUserId === user.id 
    ? _(msg`Owner`) 
    : _(ORGANISATION_MEMBER_ROLE_MAP[org.currentOrganisationRole])
}

Impact: Reduces clicks to billing from 7→3 and provides single-page view of all manageable subscriptions.

Files:

  • apps/remix/app/components/general/organisations/account-billing-organisations.tsx (new)
  • apps/remix/app/components/general/org-menu-switcher.tsx (reordered)
  • apps/remix/app/routes/_authenticated+/settings+/profile.tsx (added component)
Original prompt

We frequently get support requests to cancel users plans which points to it being hard for them to do so.

This is understandable since to cancel an active plan you need to be in the right organisation and then click organisation settings on the profile dropdown, and avoid clicking Account or Team settings which could also be logical places to look.

We can resolve this by:

A) Moving org settings to the top of the links (below admin settings) when you're in an active org that you are the owner of.
B) Adding a billing section on the account page which would just show a listing of organisations that you are the owner of and can manage billing for with a link to go manage billing there.

look at this issue and suggest the best solution to this.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/documenso/documenso/pull/2115 **Author:** [@Copilot](https://github.com/apps/copilot-swe-agent) **Created:** 10/28/2025 **Status:** ❌ Closed **Base:** `main` ← **Head:** `copilot/add-billing-section-account-page` --- ### 📝 Commits (3) - [`8b3b005`](https://github.com/documenso/documenso/commit/8b3b005b414743686ca9f35849f099736b8c1794) Initial plan - [`416bc8d`](https://github.com/documenso/documenso/commit/416bc8d6c6605fc259d78dff88cd2296dc8e277c) Improve billing settings accessibility with both solutions A and B - [`ba5007e`](https://github.com/documenso/documenso/commit/ba5007e194745caa5ff8847027ad1369d824d5d2) Address code review: show actual role instead of generic message ### 📊 Changes **3 files changed** (+89 additions, -12 deletions) <details> <summary>View changed files</summary> 📝 `apps/remix/app/components/general/org-menu-switcher.tsx` (+12 -12) ➕ `apps/remix/app/components/general/organisations/account-billing-organisations.tsx` (+74 -0) 📝 `apps/remix/app/routes/_authenticated+/settings+/profile.tsx` (+3 -0) </details> ### 📄 Description Users frequently request support to cancel subscriptions because billing settings are hard to find. The current UX requires navigating to the correct organisation context first, then locating "Organisation settings" buried in the profile dropdown. ## Changes **Billing management in account settings** - New `AccountBillingOrganisations` component displays all organisations where user has `MANAGE_BILLING` permission - Shows organisation avatar, name, role, and direct link to billing page - Added to `/settings/profile` between email usage and account deletion sections - Conditionally renders only when billing enabled and user has permissions **Prioritized contextual settings in dropdown** - Reordered `OrgMenuSwitcher` settings column to show Organisation/Team settings first (after Admin panel) - Moves context-relevant settings above generic options like Personal Inbox and Account ## Implementation ```tsx // New component filters orgs by billing permission const billingOrganisations = organisations.filter((org) => canExecuteOrganisationAction('MANAGE_BILLING', org.currentOrganisationRole) ); // Shows actual role instead of generic label secondaryText={ org.ownerUserId === user.id ? _(msg`Owner`) : _(ORGANISATION_MEMBER_ROLE_MAP[org.currentOrganisationRole]) } ``` **Impact**: Reduces clicks to billing from 7→3 and provides single-page view of all manageable subscriptions. **Files**: - `apps/remix/app/components/general/organisations/account-billing-organisations.tsx` (new) - `apps/remix/app/components/general/org-menu-switcher.tsx` (reordered) - `apps/remix/app/routes/_authenticated+/settings+/profile.tsx` (added component) <!-- START COPILOT CODING AGENT SUFFIX --> <details> <summary>Original prompt</summary> > We frequently get support requests to cancel users plans which points to it being hard for them to do so. > > This is understandable since to cancel an active plan you need to be in the right organisation and then click organisation settings on the profile dropdown, and avoid clicking Account or Team settings which could also be logical places to look. > > We can resolve this by: > > A) Moving org settings to the top of the links (below admin settings) when you're in an active org that you are the owner of. > B) Adding a billing section on the account page which would just show a listing of organisations that you are the owner of and can manage billing for with a link to go manage billing there. > > > look at this issue and suggest the best solution to this. </details> <!-- START COPILOT CODING AGENT TIPS --> --- 💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more [Copilot coding agent tips](https://gh.io/copilot-coding-agent-tips) in the docs. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 20:32:15 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/documenso#2058
No description provided.