diff --git a/packages/webapp/pages/recruiter/payment.tsx b/packages/webapp/pages/recruiter/[opportunityId]/payment.tsx
similarity index 85%
rename from packages/webapp/pages/recruiter/payment.tsx
rename to packages/webapp/pages/recruiter/[opportunityId]/payment.tsx
index 0372a44c417..a407b23f8d9 100644
--- a/packages/webapp/pages/recruiter/payment.tsx
+++ b/packages/webapp/pages/recruiter/[opportunityId]/payment.tsx
@@ -1,8 +1,7 @@
import type { ReactElement, ReactNode } from 'react';
import React, { useEffect, useRef } from 'react';
import { useRouter } from 'next/router';
-import { usePaymentContext } from '@dailydotdev/shared/src/contexts/payment/context';
-import { PaymentContextProvider } from '@dailydotdev/shared/src/contexts/payment';
+import { RecruiterPaymentContext } from '@dailydotdev/shared/src/contexts/RecruiterPaymentContext/RecruiterPaymentContext';
import HeaderLogo from '@dailydotdev/shared/src/components/layout/HeaderLogo';
import { MoveToIcon } from '@dailydotdev/shared/src/components/icons';
import {
@@ -16,23 +15,32 @@ import {
TypographyType,
} from '@dailydotdev/shared/src/components/typography/Typography';
import { FlexCol } from '@dailydotdev/shared/src/components/utilities';
+import { useRecruiterPaymentContext } from '@dailydotdev/shared/src/contexts/RecruiterPaymentContext/types';
+import {
+ OpportunityPreviewProvider,
+ useOpportunityPreviewContext,
+} from '@dailydotdev/shared/src/features/opportunity/context/OpportunityPreviewContext';
const RecruiterPaymentPage = (): ReactElement => {
const router = useRouter();
const checkoutRef = useRef
(null);
- const { isPaddleReady, openCheckout } = usePaymentContext();
+ const { openCheckout, selectedProduct } = useRecruiterPaymentContext();
+ const { opportunity } = useOpportunityPreviewContext();
useEffect(() => {
- if (!isPaddleReady) {
+ if (!opportunity) {
+ return;
+ }
+
+ if (!selectedProduct) {
return;
}
- // Initialize Paddle checkout with recruiter pricing
- // TODO: Replace with actual price ID for recruiter subscription
openCheckout({
- priceId: 'your-recruiter-price-id',
+ priceId: selectedProduct.id,
+ customData: { opportunity_id: opportunity.id },
});
- }, [isPaddleReady, openCheckout]);
+ }, [selectedProduct, openCheckout, opportunity]);
const handleBack = () => {
router.back();
@@ -158,7 +166,11 @@ const RecruiterPaymentPage = (): ReactElement => {
RecruiterPaymentPage.getLayout = function getLayout(
page: ReactNode,
): ReactNode {
- return {page};
+ return (
+
+ {page}
+
+ );
};
export default RecruiterPaymentPage;