import React, { useState } from 'react'; import { Head, Link, router } from '@inertiajs/react'; import axios from 'axios'; import { toast } from 'sonner'; import { CreditCard, Check, X, Lock, ArrowRight, Users, TrendingUp, MessageSquare, Loader2, Sparkles, ShieldCheck } from 'lucide-react'; export default function RegisterPayment({ email, plans }) { const [selectedPlan, setSelectedPlan] = useState(null); const [showPayTabsModal, setShowPayTabsModal] = useState(false); const [loading, setLoading] = useState(false); // Card inputs for PayTabs Gateway const [cardName, setCardName] = useState(''); const [cardNumber, setCardNumber] = useState(''); const [cardExpiry, setCardExpiry] = useState(''); const [cardCvv, setCardCvv] = useState(''); const handleSelectPlan = (plan) => { setSelectedPlan(plan); setShowPayTabsModal(true); }; const handlePayTabsSubmit = async (e) => { e.preventDefault(); if (cardNumber.length < 16) { toast.error("💳 Invalid card number format"); return; } setLoading(true); setShowPayTabsModal(false); try { const simulatedTxnId = 'TXN-' + Math.random().toString(36).substr(2, 9).toUpperCase(); await axios.post('/employer/register-payment', { plan_id: selectedPlan.id, amount_aed: parseFloat(selectedPlan.price), paytabs_transaction_id: simulatedTxnId }); toast.success(`🎉 Payment Approved by PayTabs!`, { description: `Successfully registered for ${selectedPlan.name}. Now let's finalize your password setup.`, duration: 5000, }); router.visit('/employer/create-password'); } catch (err) { toast.error("Payment failed. Please try again."); } finally { setLoading(false); } }; const renderStepIndicator = () => (
Unlock candidate contact details, direct messages, and complete MOHRE TADBEER compliant digital dossiers.
Select and purchase a premium pass