import { BytescaleUploader } from '@/components/BytescaleUploader/BytescaleUploader'; import SeoFields from '@/components/SeoFields/SeoFields'; import { useEffect } from 'react'; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'; import { Input } from '@/components/ui/input'; import { Textarea } from '@/components/ui/textarea'; import { Button } from '@/components/ui/button'; import { Label } from '@/components/ui/label'; import { Badge } from '@/components/ui/badge'; import { Switch } from '@/components/ui/switch'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion'; import { Plus, Trash2 } from 'lucide-react'; interface Props { open: boolean; onOpenChange: (open: boolean) => void; editingPackage: any; pkgForm: any; setPkgForm: any; inclusionsList: any[]; setInclusionsList: any; categories: any[]; onSave: () => void; } export default function HealthPackageModal({ open, onOpenChange, editingPackage, pkgForm, setPkgForm, inclusionsList, setInclusionsList, categories, onSave, }: Props) { useEffect(() => { if (!editingPackage && pkgForm.name) { setPkgForm((prev: any) => ({ ...prev, slug: prev.slug ? prev.slug : pkgForm.name .toLowerCase() .replace(/[^a-z0-9]+/g, '-') .replace(/(^-|-$)/g, ''), })); } }, [pkgForm.name]); const handleAddInclusionField = () => { setInclusionsList([ ...inclusionsList, { id: Date.now(), category: '', items: '', }, ]); }; const handleRemoveInclusionField = (id: number) => { setInclusionsList(inclusionsList.filter((item) => item.id !== id)); }; const handleUpdateInclusionField = (id: number, field: string, value: string) => { setInclusionsList( inclusionsList.map((item) => item.id === id ? { ...item, [field]: value, } : item ) ); }; return ( {editingPackage ? 'Edit Health Package' : 'Create Health Package'}
{/* LEFT COLUMN */}

Profile & Pricing

Main package information

Recommended size: 650 × 250

setPkgForm({ ...pkgForm, image: url, }) } />

Active Visibility

Show this package publicly

setPkgForm({ ...pkgForm, isActive: val, }) } />
setPkgForm({ ...pkgForm, name: e.target.value, }) } />
setPkgForm({ ...pkgForm, slug: e.target.value, }) } />
{ const value = e.target.value ? Number(e.target.value) : undefined; setPkgForm({ ...pkgForm, price: value, }); }} />
setPkgForm({ ...pkgForm, discountedPrice: e.target.value ? Number(e.target.value) : undefined, }) } />
setPkgForm({ ...pkgForm, sortOrder: Number(e.target.value), }) } />