mirror of
https://github.com/supabase/supabase.git
synced 2026-10-11 12:25:05 +03:00
### Changes - Adds a dismissible banner prompting paid org users to add a Tax ID to their billing settings - Only shown to users with billing read permissions on orgs with a paid plan and no Tax ID set - Dismissal is persisted per-org via localStorage; banner also auto-hides when a Tax ID is added ### Testing - Log in as a user with no billing permissions into a Free Plan Org with no tax id: no banner is shown - Log in as a user with billing permissions into a Free Plan Org with no tax id: no banner is shown - Log in as a user with billing permissions into a Paid Plan Org with no tax id - Assert banner appears at the top - Head to `/org/_/billing` with a paid Org. Change your billing country to a not support one (like Paraguay) and click save. Assert that the banner disappears. Change it back to continue testing. - Click dismiss: banner disappears and stays dismissed across navigation/refresh - Log in as a user with billing permissions into a different Paid Plan Org with no tax id - Add a Tax ID via billing settings, assert that the banner disappears immediately <img width="1911" height="50" alt="image" src="https://github.com/user-attachments/assets/d6208d6d-0939-4ff6-9613-5c687e7c622e" />
27 lines
959 B
TypeScript
27 lines
959 B
TypeScript
import { useFlag } from 'common'
|
|
import { ClockSkewBanner } from 'components/layouts/AppLayout/ClockSkewBanner'
|
|
import { NoticeBanner } from 'components/layouts/AppLayout/NoticeBanner'
|
|
import { StatusPageBanner } from 'components/layouts/AppLayout/StatusPageBanner'
|
|
import { TaxIdBanner } from 'components/layouts/AppLayout/TaxIdBanner'
|
|
import { PropsWithChildren } from 'react'
|
|
|
|
import { OrganizationResourceBanner } from '../Organization/HeaderBanner'
|
|
|
|
export const AppBannerWrapper = ({ children }: PropsWithChildren<{}>) => {
|
|
const showNoticeBanner = useFlag('showNoticeBanner')
|
|
const clockSkewBanner = useFlag('clockSkewBanner')
|
|
|
|
return (
|
|
<div className="flex flex-col">
|
|
<div className="flex-shrink-0">
|
|
<StatusPageBanner />
|
|
{showNoticeBanner && <NoticeBanner />}
|
|
<OrganizationResourceBanner />
|
|
<TaxIdBanner />
|
|
{clockSkewBanner && <ClockSkewBanner />}
|
|
</div>
|
|
{children}
|
|
</div>
|
|
)
|
|
}
|