"use client"; import { useRouter } from "next/navigation"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { useSetupCampaign } from "@/modules/campaigns/hooks"; import { setupCampaignSchema, type SetupCampaignInput } from "@/modules/campaigns/schemas"; import { useToast } from "@/hooks/use-toast"; import { ArrowLeft, Calendar } from "lucide-react"; export default function SetupCampaignPage() { const router = useRouter(); const { toast } = useToast(); const setupMutation = useSetupCampaign(); const { register, handleSubmit, reset, formState: { errors }, } = useForm({ resolver: zodResolver(setupCampaignSchema), }); const onSubmit = async (data: SetupCampaignInput) => { try { const isoDate = data.date.includes('T') ? data.date + ':00.000Z' : data.date; await setupMutation.mutateAsync({ ...data, date: isoDate, }); toast({ title: "Campaign scheduled", description: "Campaign has been scheduled successfully", }); reset(); router.push("/campaigns"); } catch (error) { toast({ title: "Setup failed", description: "Failed to schedule campaign", variant: "destructive", }); } }; return (

Setup Campaign

Schedule a campaign to be sent at a specific time

Schedule Campaign Create a scheduled campaign that will be sent to all users at the specified date and time
{errors.title && (

{errors.title.message}

)}
{errors.content && (

{errors.content.message}

)}
{errors.date && (

{errors.date.message}

)}

Format: ISO 8601 (e.g., 2025-11-26T08:15:00Z)

); }