InvoicesSection.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { PermissionAction } from '@supabase/shared-types/out/constants'
  2. import { InvoicesSettings } from './InvoicesSettings'
  3. import {
  4. ScaffoldSection,
  5. ScaffoldSectionContent,
  6. ScaffoldSectionDetail,
  7. } from '@/components/layouts/Scaffold'
  8. import NoPermission from '@/components/ui/NoPermission'
  9. import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions'
  10. export const InvoicesSection = () => {
  11. const { isSuccess: isPermissionsLoaded, can: canReadInvoices } = useAsyncCheckPermissions(
  12. PermissionAction.BILLING_READ,
  13. 'stripe.subscriptions'
  14. )
  15. return (
  16. <ScaffoldSection>
  17. <ScaffoldSectionDetail>
  18. <div className="sticky space-y-2 top-12 pr-6">
  19. <p className="text-foreground text-base m-0">Past Invoices</p>
  20. <p className="prose text-sm">
  21. You get an invoice every time you change your plan or when your monthly billing cycle
  22. resets.
  23. </p>
  24. </div>
  25. </ScaffoldSectionDetail>
  26. <ScaffoldSectionContent>
  27. {isPermissionsLoaded && !canReadInvoices ? (
  28. <NoPermission resourceText="view this organization's upcoming invoice" />
  29. ) : (
  30. <InvoicesSettings />
  31. )}
  32. </ScaffoldSectionContent>
  33. </ScaffoldSection>
  34. )
  35. }