Skip to content

feat: members page revamp#1488

Merged
rohanchkrabrty merged 12 commits intomainfrom
feat-members-revamp
Apr 6, 2026
Merged

feat: members page revamp#1488
rohanchkrabrty merged 12 commits intomainfrom
feat-members-revamp

Conversation

@rohanchkrabrty
Copy link
Copy Markdown
Contributor

Summary

  • Migrate SDK to @raystack/apsara-v1 and update all component imports
  • Add revamped settings pages: General, Profile, Preferences, Sessions, and Members
  • Introduce reusable ViewContainer, ViewHeader, and ImageUpload components
  • Refactor dialog components (invite, remove, update-role) to use Dialog.createHandle for imperative control instead of forwardRef/useImperativeHandle
  • Add client-demo app with settings routes for local development and testing

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 30, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
frontier Ready Ready Preview, Comment Apr 6, 2026 5:13am

@rohanchkrabrty rohanchkrabrty changed the base branch from main to feat-sessions-revamp March 30, 2026 10:32
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 30, 2026

Warning

Rate limit exceeded

@rohanchkrabrty has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 5 minutes and 4 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 5 minutes and 4 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 64966f9a-3fc1-4d13-a543-e2044299393f

📥 Commits

Reviewing files that changed from the base of the PR and between 0392bd1 and 421058f.

⛔ Files ignored due to path filters (1)
  • web/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (13)
  • web/apps/client-demo/src/Router.tsx
  • web/apps/client-demo/src/pages/Settings.tsx
  • web/apps/client-demo/src/pages/settings/Members.tsx
  • web/sdk/package.json
  • web/sdk/react/index.ts
  • web/sdk/react/views-new/members/components/invite-member-dialog.tsx
  • web/sdk/react/views-new/members/components/member-columns.module.css
  • web/sdk/react/views-new/members/components/member-columns.tsx
  • web/sdk/react/views-new/members/components/remove-member-dialog.tsx
  • web/sdk/react/views-new/members/components/update-role-dialog.tsx
  • web/sdk/react/views-new/members/index.ts
  • web/sdk/react/views-new/members/members-view.module.css
  • web/sdk/react/views-new/members/members-view.tsx
📝 Walkthrough

Walkthrough

Upgraded React from v18 to v19, added organization settings management UI with nested routing (/:orgId/settings and sub-routes for general, preferences, profile, sessions, members), introduced new SDK view components and dialogs for settings management including form handling and mutations, and added reusable utility components (image upload with crop, view container, view header).

Changes

Cohort / File(s) Summary
React 19 Upgrade
web/apps/client-demo/package.json, web/sdk/package.json
Updated React and TypeScript type dependencies from ^18.x to ^19.x; adjusted peer dependencies and removed dev-time type deps; added @raystack/apsara-v1 alias.
Client Demo App Structure
web/apps/client-demo/src/App.tsx, web/apps/client-demo/src/styles.css
Added stylesheet imports (./styles.css and @raystack/apsara/normalize.css) and global body margin/padding reset.
Routing & Navigation
web/apps/client-demo/src/Router.tsx, web/apps/client-demo/src/pages/Home.tsx
Added /:orgId/settings parent route with nested child routes (general, preferences, profile, sessions, members); updated Home page to include secondary navigation link to new settings UI.
Settings Pages
web/apps/client-demo/src/pages/Settings.tsx, web/apps/client-demo/src/pages/settings/General.tsx, web/apps/client-demo/src/pages/settings/Preferences.tsx, web/apps/client-demo/src/pages/settings/Profile.tsx, web/apps/client-demo/src/pages/settings/Sessions.tsx, web/apps/client-demo/src/pages/settings/Members.tsx
Created Settings container page with sidebar navigation and outlet; created five sub-pages rendering respective SDK views (GeneralView, PreferencesView, etc.).
Image Upload Component
web/sdk/react/components/image-upload/*
Added new ImageUpload component with embedded CropDialog using react-image-crop; supports aspect-ratio locking, canvas-based cropping with DPI scaling, base64 JPEG export, and avatar preview.
View Utility Components
web/sdk/react/components/view-container/*, web/sdk/react/components/view-header/*
Created ViewContainer (full-viewport layout with padding/scrolling) and ViewHeader (title/description with children slot) utility components with CSS modules.
General Settings View
web/sdk/react/views-new/general/*
Implemented GeneralView with avatar upload, organization title/name fields, delete confirmation dialog; includes permission checks for update/delete actions and associated DeleteOrganizationDialog component.
Preferences Settings View
web/sdk/react/views-new/preferences/*
Added PreferencesView rendering theme selector (light/dark/system) and newsletter opt-in; created PreferenceRow utility component for preference pairs with loading skeletons.
Profile Settings View
web/sdk/react/views-new/profile/*
Implemented ProfileView with avatar upload and user profile form (title/email) using react-hook-form validation; wires to updateCurrentUser mutation with query invalidation.
Sessions Settings View
web/sdk/react/views-new/sessions/*
Created SessionsView displaying active sessions with browser/OS/location info; includes RevokeSessionDialog and RevokeSessionConfirmDialog for session management with conditional logout/revoke logic.
Members Settings View
web/sdk/react/views-new/members/*
Implemented MembersView with DataTable, member search/role filtering, and context menu actions; includes InviteMemberDialog, RemoveMemberDialog, UpdateRoleDialog, and member-columns factory for dynamic role/permission rendering.
SDK Exports & Build Config
web/sdk/react/index.ts, web/sdk/tsup.config.ts
Extended SDK entrypoint exports with new components (ImageUpload, ViewContainer, ViewHeader) and view modules (GeneralView, PreferencesView, ProfileView, SessionsView, MembersView); updated tsup to exclude react-dom as external.
SheetFooter Component Update
web/sdk/admin/components/SheetFooter.tsx
Removed optional css prop and hardcoded border color to CSS variable --rs-color-border-base-primary.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested reviewers

  • rsbh
  • rohilsurana
  • paanSinghCoder

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rohanchkrabrty rohanchkrabrty changed the title feat: revamp SDK settings pages with apsara-v1 feat: members page revamp Mar 30, 2026
@rohanchkrabrty rohanchkrabrty added the Do not merge Label to indicate that the PR is not ready to be merged even though might be (or not) approvals. label Mar 30, 2026
Base automatically changed from feat-sessions-revamp to main April 6, 2026 05:10
@rohanchkrabrty rohanchkrabrty enabled auto-merge (squash) April 6, 2026 05:12
@rohanchkrabrty rohanchkrabrty removed the Do not merge Label to indicate that the PR is not ready to be merged even though might be (or not) approvals. label Apr 6, 2026
@rohanchkrabrty rohanchkrabrty merged commit 9647a73 into main Apr 6, 2026
8 checks passed
@rohanchkrabrty rohanchkrabrty deleted the feat-members-revamp branch April 6, 2026 05:17
@coveralls
Copy link
Copy Markdown

Pull Request Test Coverage Report for Build 24019676236

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 41.238%

Totals Coverage Status
Change from base Build 24019627839: 0.0%
Covered Lines: 14931
Relevant Lines: 36207

💛 - Coveralls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants