mirror of
https://github.com/supabase/supabase.git
synced 2026-10-11 04:15:04 +03:00
## Release Notes * **New Features** * Added project acknowledgement flow when deleting organizations. Users with 10 or fewer projects must confirm each project individually; users with more than 10 projects can confirm all at once. * Organizations now display project counts and compute sizes during deletion confirmation to help users understand what will be deleted. ## What kind of change does this PR introduce? **Improvements to the delete organization workflow:** * Added a checklist that requires users to acknowledge each project before deleting organizations with up to 10 projects, and a single bulk acknowledgement for organizations with more than 10 projects. This helps prevent accidental deletion of projects. * Extracted acknowledgement UI into dedicated sub-components (`DeleteOrganizationButton.ListAck.tsx` and `DeleteOrganizationButton.SingleAck.tsx`). **Error handling and validation:** * Acknowledgement state (`checkedProjects`/`acknowledgedAll`) is reset synchronously in the button's click handler before the modal opens, preventing any stale checked state from briefly appearing on re-open. * Acknowledgement state is also reset when the organization changes (`orgSlug` effect), ensuring a fresh confirmation when switching orgs. * Deletion is blocked while projects are loading **or fetching** (including background refetches triggered by `refetchOnMount: 'always'`), preventing deletion from proceeding on stale or incomplete project data. * Added error handling for project loading failures, and prevented deletion if projects are not fully acknowledged or if there is a loading/error/fetching state. ## What is the current behavior? No explicit confirmation from the user to acknowledge all the projects: <img src="https://github.com/user-attachments/assets/68840781-467b-41ef-a821-50e471e93cc5" width="500"> ## What is the new behavior? Small org (≤10): all projects load and checklist works <img src="https://github.com/user-attachments/assets/9869e94c-6a6f-4d65-8550-55da58a388f2" width="500"> Large org (>10): show one checkbox <img src="https://github.com/user-attachments/assets/8420dfd1-814a-4656-acad-7fa00b088e83" width="500"> ## Additional context * Projects are fetched lazily (`enabled: isOpen`) so no unnecessary network requests occur until the delete modal is opened. * The delete guard now checks both `isLoading`, `isProjectsDataPending` and `isFetching` to cover background refetch scenarios where cached data may be stale. * Added explicit handling for the “pending but not loading” case to avoid misleading users with acknowledgement errors before projects are loaded. * Limited project fetch size to MAX_PROJECT_ACKNOWLEDGEMENTS + 1 to reduce payload and improve modal load performance. * Acknowledgement state is reset both on modal open and when the organization changes (orgSlug), ensuring consistent behavior across org switches. --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>