"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { CalendarCheckIcon, AlertCircleIcon, Loader2Icon } from "lucide-react"; import { Button } from "@/components/ui/button"; import { createReminderAction } from "@/actions/reminders"; import { cn } from "@/lib/utils"; interface ReviewSubmitClientProps { accountId: string; groupIds: string; text?: string; mediaId?: string; caption?: string; scheduledAt: string; timezone: string; } export function ReviewSubmitClient({ accountId, groupIds, text, mediaId, caption, scheduledAt, timezone, }: ReviewSubmitClientProps) { const router = useRouter(); const [submitting, setSubmitting] = useState(false); const [error, setError] = useState(null); async function handleSchedule() { setSubmitting(true); setError(null); try { const result = await createReminderAction({ accountId, groupIds: groupIds.split(",").filter(Boolean), text: text ?? null, mediaId: mediaId ?? null, caption: caption ?? null, scheduledAtIso: scheduledAt, timezone, }); if (result.ok) { // eslint-disable-next-line @typescript-eslint/no-explicit-any router.push(`/reminders/${result.reminderId}` as any); } else { setError(result.error); setSubmitting(false); } } catch (err) { setError(err instanceof Error ? err.message : "An unexpected error occurred."); setSubmitting(false); } } return (
{error && (
{error}
)}
); }