Files
supabase/apps/studio/components/interfaces/Billing/NoProjectsOnPaidOrgInfo.tsx
Ivan VasilovandJordi Enric 56de26fe22 chore: Migrate the monorepo to use Tailwind v4 (#45318)
This PR migrates the whole monorepo to use Tailwind v4:
- Removed `@tailwindcss/container-queries` plugin since it's included by
default in v4,
- Bump all instances of Tailwind to v4. Made minimal changes to the
shared config to remove non-supported features (`alpha` mentions),
- Migrate all apps to be compatible with v4 configs,
- Fix the `typography.css` import in 3 apps,
- Add missing rules which were included by default in v3,
- Run `pnpm dlx @tailwindcss/upgrade` on all apps, which renames a lot
of classes
- Rename all misnamed classes according to
https://tailwindcss.com/docs/upgrade-guide#renamed-utilities in all
apps.

---------

Co-authored-by: Jordi Enric <jordi.err@gmail.com>
2026-04-30 10:53:24 +00:00

35 lines
1.2 KiB
TypeScript

import Link from 'next/link'
import { Admonition } from 'ui-patterns'
import { useOrgProjectsInfiniteQuery } from '@/data/projects/org-projects-infinite-query'
import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization'
const EXCLUDED_PLANS = ['free', 'platform', 'enterprise']
export const NoProjectsOnPaidOrgInfo = () => {
const { data: organization } = useSelectedOrganizationQuery()
const isEligible = organization != null && !EXCLUDED_PLANS.includes(organization.plan.id ?? '')
const { data } = useOrgProjectsInfiniteQuery(
{ slug: organization?.slug },
{ enabled: isEligible }
)
const projectCount = data?.pages[0].pagination.count ?? 0
if (!isEligible || projectCount > 0) return null
return (
<Admonition
type="default"
title={`Your organization is on the ${organization.plan.name} plan with no projects running`}
description={
<div className="max-w-full! prose text-sm">
The monthly fees for the paid plan still apply. To cancel your subscription, head over to
your{' '}
<Link href={`/org/${organization?.slug}/billing`}>organization billing settings</Link>
</div>
}
/>
)
}