NoProjectsOnPaidOrgInfo.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. import Link from 'next/link'
  2. import { Admonition } from 'ui-patterns'
  3. import { useOrgProjectsInfiniteQuery } from '@/data/projects/org-projects-infinite-query'
  4. import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization'
  5. const EXCLUDED_PLANS = ['free', 'platform', 'enterprise']
  6. export const NoProjectsOnPaidOrgInfo = () => {
  7. const { data: organization } = useSelectedOrganizationQuery()
  8. const isEligible = organization != null && !EXCLUDED_PLANS.includes(organization.plan.id ?? '')
  9. const { data } = useOrgProjectsInfiniteQuery(
  10. { slug: organization?.slug },
  11. { enabled: isEligible }
  12. )
  13. const projectCount = data?.pages[0].pagination.count ?? 0
  14. if (!isEligible || projectCount > 0) return null
  15. return (
  16. <Admonition
  17. type="default"
  18. title={`Your organization is on the ${organization.plan.name} plan with no projects running`}
  19. description={
  20. <div className="max-w-full! prose text-sm">
  21. The monthly fees for the paid plan still apply. To cancel your subscription, head over to
  22. your{' '}
  23. <Link href={`/org/${organization?.slug}/billing`}>organization billing settings</Link>
  24. </div>
  25. }
  26. />
  27. )
  28. }