Consolidate seats used alerts logic in a common component
What does this MR do and why?
This code refactors how seat usage alerts are displayed in a subscription management system. Previously, there were two separate alert components that each had their own complex logic to determine when to show warnings about running out of subscription seats.
The changes consolidate this into a single, simpler notification component that acts as a coordinator - it decides which type of alert to show based on the subscription settings. The individual alert components were simplified by removing duplicate validation logic like checking if the user is an owner, if it's a paid plan, or if all seats are actually used.
The new approach moves all the decision-making logic into one place, making the code easier to maintain and reducing duplication. The alerts themselves still work the same way for users - they'll see warnings when their organization has used up all available seats in their subscription - but the underlying code is now cleaner and more organized.
Related to
Part 1 of #553320 - Split from !204336 (closed)
Screenshots or screen recordings
| No more seats: Restricted Access | ![]() |
| No more seats: Open Access | ![]() |
How to set up and validate locally
- Navigate to any group or project page where seat alerts would normally appear
- Verify that the "all seats used" alerts still appear correctly for namespaces that have reached their seat limit
- Verify that both regular and block overages alerts work as expected
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

