-
Notifications
You must be signed in to change notification settings - Fork 164
Project settings page #8760
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?
Project settings page #8760
Conversation
…gGuardedConfirmation - Add confirmButtonText prop with default 'Continue' - Add confirmButtonType prop with default 'primary' - Update cancel button style based on confirm button type - Export ButtonType from button index
- Add ProjectNameSettings.svelte for editing project name and description - Add DeleteProject.svelte for project deletion with guarded confirmation - Add DangerZone.svelte wrapper for destructive actions - Add errors.ts for project update error handling
- Add General nav item to project settings layout - Update +page.svelte to include ProjectNameSettings and DeleteProject - Add DangerZone wrapper for delete project section
|
Cursor Agent can help with this pull request. Just |
Remove TODO and update settings route to point to base settings URL now that the General project settings page is implemented.
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on March 25. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
ericpgreen2
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
Agreed, will make the changes |
…bility TypeScript cannot export types from Svelte module context, so moved ButtonType to a dedicated types.ts file that can be properly exported.
- Add red-tinted background to footer section (matching Vercel style) - Update title from 'Delete this project' to 'Delete Project' - Update CTA button text to 'Delete Project'
Change border from red-400 to red-200 for a softer appearance
Move DangerZone.svelte from features/projects/settings to components/settings for reuse across multiple features
ericpgreen2
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code quality check is still failing.
|
If making changes to this page here: then add other settings too please, IEhibernate, make public. will close my draft: #8744 |
- Add ProjectVisibilitySettings component for toggling public/private - Add HibernateProject component for hibernate/wake functionality - Update DangerZone to support multiple items with dividers - Add Danger Zone section header to settings page - Order items by severity: visibility, hibernate, delete
- Use separate DangerZone containers for each item (Vercel style) - Remove confirmation dialog for visibility toggle - Simplify hibernate confirmation to just Hibernate/Cancel buttons - Use destructive (red) button style for all danger zone CTAs
- Add secondary-destructive to ButtonType - Add styling with red border and text - Use for visibility and hibernate CTAs in danger zone
- Fix prettier formatting in CTACard.svelte - Remove invalid 'data' property from redeployProject mutation call
…ders - Group all danger zone items in one container - Add internal dividers between items for visual separation - Reduces visual noise from multiple separate borders
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1. Hibernate confirmation copy contradicts the post-hibernate screen
HibernateProject.svelte:99 — The confirmation dialog says "It can be reactivated by accessing it again," but after hibernating, the user lands on a screen instructing them to run a CLI command to redeploy. The settings body text (line 78) offers a third variant: "To access, please wake the project" without saying how. These three messages should be consistent. Suggest changing the dialog description to something neutral like "The project will be paused and will not consume resources. It can be woken up at any time." — avoiding a specific wake-up path since the settings page isn't reachable from the hibernation screen today.
2. Form values reset on background refetch (pre-existing pattern)
ProjectNameSettings.svelte:96-99 — The reactive block that syncs server data into form fields runs every time the query refetches (including TanStack Query's window-focus refetching). If a user is mid-edit, their input gets silently overwritten. This is the same pattern as OrgNameSettings.svelte:90-95, so it's not new to this PR — but worth flagging as a known UX issue. A guard like if (!changed) before writing form values would prevent the overwrite.
3. sanitizeOrgName used for project names
ProjectNameSettings.svelte:14 — The function sanitizeOrgName is used to sanitize the project name. The logic is correct (replaces non-word characters with hyphens), but the naming is misleading in this context. Consider extracting a shared sanitizeSlug or sanitizeName utility.
4. deleteProject navigates before cache cleanup completes
DeleteProject.svelte:28-35 — After mutateAsync resolves, goto fires immediately, then removeQueries runs, then invalidateQueries is awaited. The new page may mount and render a stale project list before invalidation completes. Consider awaiting the cache operations before navigating.
5. HibernateProject: no error handling on mutations
HibernateProject.svelte:40-55, 57-67 — Both hibernateProject and wakeProject call mutateAsync without try/catch. If the mutation fails, the error propagates as an unhandled rejection. DeleteProject and ProjectVisibilitySettings both handle errors — this component should too.
6. DangerZone uses color-mix — check browser support
DangerZone.svelte:30 — color-mix(in srgb, ...) is modern CSS (baseline 2023). If the app targets older browsers, this could silently fail and render a transparent footer background.
Developed in collaboration with Claude Code
1. Hibernate confirmation copy - made description neutral and consistent 2. Form values reset - added guard to prevent overwriting user edits 3. sanitizeOrgName naming - created shared sanitizeSlug utility 4. deleteProject navigation - await cache cleanup before navigating 5. HibernateProject error handling - added try/catch to mutations 6. DangerZone color-mix - added fallback for older browsers Co-authored-by: ericokuma <ericokuma@users.noreply.github.com>


This PR introduces the 'General' settings page for projects, fulfilling APP-713. It provides project-level configuration for:
Checklist:
Linear Issue: APP-713