Skip to content

Add Extra accounts page and invitation management UI#1664

Open
j-ruda-guardian wants to merge 9 commits into
mainfrom
jr/extra-accounts-interactions
Open

Add Extra accounts page and invitation management UI#1664
j-ruda-guardian wants to merge 9 commits into
mainfrom
jr/extra-accounts-interactions

Conversation

@j-ruda-guardian

@j-ruda-guardian j-ruda-guardian commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an Extra accounts MMA page for Digital Plus subscribers (gated by ?TEST_EXTRA_ACCOUNTS_FLAG=true for now)
Adds nav entry, account overview banner, and useExtraAccounts hook + Zustand store
Implements send, cancel, and remove-access flows with confirmation modals and success/error feedback
Moves Modal to client/components/shared with containerCssOverrides and hideCloseButton

Notes

API calls are mocked (2s delay); list refetch uses hardcoded data until backend is ready

###Test plan

  • Enable with ?TEST_EXTRA_ACCOUNTS_FLAG=true on a Digital Plus test account
  • Send invitation from an empty slot (form validation, loading, success message)
  • Cancel a pending invitation via modal
  • Remove access from an active account via modal
  • Confirm holiday modals still work after the shared Modal move

@j-ruda-guardian j-ruda-guardian force-pushed the jr/extra-accounts-interactions branch from 293d327 to 8acc0ed Compare June 5, 2026 12:49
@j-ruda-guardian j-ruda-guardian added the feature Departmental tracking: work on a new feature label Jun 5, 2026
@j-ruda-guardian j-ruda-guardian changed the title Jr/extra accounts interactions Add Extra accounts page and invitation management UI Jun 5, 2026
@j-ruda-guardian j-ruda-guardian requested a review from Copilot June 5, 2026 13:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an “Extra accounts” management experience to MMA (currently gated behind a query param + Digital Plus), including navigation entrypoints and invitation lifecycle UI, and centralises the shared Modal component for reuse (holiday flows updated accordingly).

Changes:

  • Introduces Extra Accounts page UI (banner, rows, invite form, confirmation modals) plus a useExtraAccounts hook backed by a Zustand store.
  • Adds an “Extra accounts” route and nav entries (left nav + dropdown), and wires in an icon + page skeleton metadata.
  • Moves Modal into client/components/shared and updates Holiday modals to import it from the new location.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
client/utilities/hooks/useExtraAccounts.ts New hook to load/gate extra accounts and handle invite/cancel/remove flows.
client/utilities/extraAccounts.ts New feature gating helpers (Digital Plus + query param).
client/stores/ExtraAccountsStore.tsx New Zustand store for extra accounts state + loading/error handling.
client/components/shared/nav/NavConfig.tsx Adds “Extra accounts” nav item configuration and icon.
client/components/shared/nav/LeftSideNav.tsx Conditionally renders the new nav item based on eligibility gate.
client/components/shared/nav/DropdownNav.tsx Conditionally renders the new nav item in dropdown based on eligibility gate.
client/components/shared/Modal.tsx Enhances shared modal with container CSS overrides + optional close button.
client/components/mma/shared/ExtraAccountsBanner.tsx Adds an account overview banner CTA linking to extra accounts.
client/components/mma/shared/assets/ExtraAccountsIcon.tsx Adds the icon used in nav for Extra Accounts.
client/components/mma/MMAPageSkeleton.tsx Adds page metadata for the /extra-accounts route.
client/components/mma/MMAPage.tsx Adds lazy-loaded route entry for the Extra Accounts page.
client/components/mma/holiday/HolidayReview.tsx Switches holiday flow to use the shared Modal import.
client/components/mma/holiday/HolidayQuestionsModal.tsx Switches holiday flow to use the shared Modal import.
client/components/mma/holiday/HolidayAnniversaryDateExplainerModal.tsx Switches holiday flow to use the shared Modal import.
client/components/mma/holiday/ExistingHolidayStopActions.tsx Switches holiday flow to use the shared Modal + HideFunction types.
client/components/mma/extraAccounts/ExtraAccounts.tsx New main page for managing extra accounts and showing status + feedback.
client/components/mma/extraAccounts/ExtraAccountRow.tsx New row UI for empty/pending/active slots and associated actions/modals.
client/components/mma/extraAccounts/ExtraAccountInviteForm.tsx New invite form (email + consent) for empty slots.
client/components/mma/extraAccounts/ExtraAccountCancelInvitationModal.tsx New reusable confirmation modal wrapper for cancel/remove flows.
client/components/mma/accountoverview/AccountOverview.tsx Displays the Extra Accounts banner behind the current gate.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread client/utilities/hooks/useExtraAccounts.ts
Comment thread client/utilities/hooks/useExtraAccounts.ts
Comment thread client/utilities/extraAccounts.ts Outdated
Comment thread client/components/mma/extraAccounts/ExtraAccountRow.tsx Outdated
Comment thread client/components/mma/extraAccounts/ExtraAccountRow.tsx Outdated
Comment thread client/components/mma/extraAccounts/ExtraAccountInviteForm.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Departmental tracking: work on a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants