-
Notifications
You must be signed in to change notification settings - Fork 461
refactor: Modernize ProjectSettingsPage #6302
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
refactor: Modernize ProjectSettingsPage #6302
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on December 10. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
Docker builds report
|
26d72a4 to
22f550a
Compare
Call AppActions.refreshOrganisation() after project updates to ensure the legacy OrganisationStore stays in sync with RTK Query cache. This fixes the navbar not updating when project name changes, which was causing the E2E test (project-test.ts) to fail.
b58bf94 to
fd57e21
Compare
fd57e21 to
8825bf2
Compare
|
@Zaimwa9 |
Fixed critical bug where the case sensitivity toggle had inverted behavior.
The backend field 'only_allow_lower_case_feature_names' has a negative
semantic (true = force lowercase), but the UI shows "Case sensitive features"
with a positive semantic (ON = allow uppercase).
Therefore we must invert the checked state to match the UI's meaning:
- checked={!project.only_allow_lower_case_feature_names}
Now when users enable "Case sensitive features", it correctly sets
only_allow_lower_case_feature_names=false, allowing uppercase characters.
This matches the original implementation and fixes the critical issue
documented in PROJECT_ORG_FIXES.md #1.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
Thanks for submitting a PR! Please check the boxes below:
docs/if required so people know about the feature!Overview
Transformed the Project Settings page from a 673-line monolithic JavaScript class component into a modern, modular
TypeScript architecture with 19 focused components, establishing reusable patterns and improving maintainability.
Key Changes
1. Architecture Overhaul: From Monolith to Modular
Before: Single 673-line class component mixing all concerns After: 19 focused TypeScript components with clear
hierarchy
Result: 253 fewer lines of code with better organization and functionality
2. TypeScript Migration & Type Safety
UpdateProjectBodytype for type-safe project mutations3. Modern React Patterns
Functional Components with Hooks:
Custom Hook Pattern:
useUpdateProjectWithToastto eliminate boilerplateRTK Query Integration:
4. Code Quality Improvements
useCallbackwrappersuseEffectstate syncing (handled by optimistic updates)Benefits
Notes
How did you test this code?
Manual Testing Steps (for QA)
Test 1: Project Name Update & Navbar Sync ⭐ (Critical - fixes E2E test)
Test 2: Stale Flag Detection (if available)
Test 3: Additional Settings Toggles
Test 4: Change Request Approvals (Enterprise only)
Test 5: SDK Settings
Test 6: Optimistic Updates & Error Handling ⭐ (Important)
Test 7: Permissions Tab
Test 8: Navigation Between Tabs
QA Sign-off Checklist