import React, { useState } from 'react'; import { Head, router } from '@inertiajs/react'; import AdminLayout from '@/Layouts/AdminLayout'; import { Plus, Edit2, Trash2, Check, X, Info, MoreVertical, DollarSign, Clock, Zap, Shield, Trophy, Search } from 'lucide-react'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; export default function SubscriptionsIndex({ plans: initialPlans }) { const [plans, setPlans] = useState(initialPlans || [ { id: 'basic', name: 'Basic Search', price: 99, duration: 'Monthly', features: ['Browse 500+ workers', '10 Shortlists'], status: 'Active' }, { id: 'premium', name: 'Premium Pass', price: 199, duration: 'Monthly', features: ['Unlimited shortlisting', 'Direct messaging'], status: 'Active' }, { id: 'vip', name: 'VIP Concierge', price: 499, duration: 'Monthly', features: ['Dedicated Manager', '30-day replacement'], status: 'Active' }, ]); const [isDialogOpen, setIsDialogOpen] = useState(false); const [editingPlan, setEditingPlan] = useState(null); const handleEdit = (plan) => { setEditingPlan(plan); setIsDialogOpen(true); }; const handleDelete = (id) => { if (confirm('Are you sure you want to delete this plan?')) { // router.delete(`/admin/subscriptions/plans/${id}`); setPlans(plans.filter(p => p.id !== id)); } }; return (
{/* Header Actions */}
{/* Plans Table */}
Plan Name Pricing (AED) Duration Key Features Status Actions {plans.map((plan) => (
{plan.id === 'basic' ? : plan.id === 'premium' ? : }
{plan.name}
{plan.price} {plan.duration}
{plan.features.map((f, i) => ( {f} ))}
{plan.status}
))}
{/* Plan Modal (Placeholder UI) */} {editingPlan ? 'Edit Subscription Plan' : 'Create New Plan'} Configure pricing and limits for employers