diff --git a/app/(app)/settings/panels/dues-panel.tsx b/app/(app)/settings/panels/dues-panel.tsx new file mode 100644 index 0000000..11258de --- /dev/null +++ b/app/(app)/settings/panels/dues-panel.tsx @@ -0,0 +1,14 @@ +'use client' + +import { StripeBillingPanel } from '@/components/settings/stripe-billing-panel' +import { DuesPaymentMethodsPanel } from '@/components/settings/dues-payment-methods-panel' + +// Dues Tab: how members pay dues (Stripe recurring + external links) +export function DuesPanel({ spaceId }: { spaceId: string }) { + return ( +
Integrations
+ +{config.name}
+{config.description}
+Space Settings
+ + +Visibility
++ Who sees financial data and the member directory. These flags propagate to the + /financials page and (in a future pass) to the members directory. +
+ + +Webhook Endpoint
++ POST members to this endpoint for external integration or automation. +
+
+ https://api.hackerspace.sh/{space.slug}/members
+
+ Signing Secret
++ Every delivery is signed with HMAC-SHA256 using this secret. See the docs for verification examples in Node and Python. +
+
+ {webhookSecret
+ ? (showWebhookSecret ? webhookSecret : '•'.repeat(Math.min(webhookSecret.length, 48)))
+ : No secret set. Rotate to generate one.}
+
+ {webhookSecret && (
+
+ )}
+ + Rotating immediately invalidates the previous secret. Update your receiver before rotating in production. +
+ )} +Space Settings
- - -Visibility
-- Who sees financial data and the member directory. These flags propagate to the - /financials page and (in a future pass) to the members directory. -
- - -Integrations
- -{config.name}
-{config.description}
-Webhook Endpoint
-- POST members to this endpoint for external integration or automation. -
-
- https://api.hackerspace.sh/{space.slug}/members
-
- Signing Secret
-- Every delivery is signed with HMAC-SHA256 using this secret. See the docs for verification examples in Node and Python. -
-
- {webhookSecret
- ? (showWebhookSecret ? webhookSecret : '•'.repeat(Math.min(webhookSecret.length, 48)))
- : No secret set. Rotate to generate one.}
-
- {webhookSecret && (
-
- )}
- - Rotating immediately invalidates the previous secret. Update your receiver before rotating in production. -
- )} -