"use client"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import Link from "next/link"; import { signup } from "@/actions/auth-actions"; import { cn } from "@/lib/utils"; import { Loader2 } from "lucide-react"; import { useSearchParams } from "next/navigation"; import * as React from "react"; import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue, } from "@/components/ui/select"; import type { ApiResponse, Atoll } from "@/lib/backend-types"; import { getAtolls } from "@/queries/islands"; import { keepPreviousData, useQuery } from "@tanstack/react-query"; export default function SignUpForm() { const { data: atolls } = useQuery>({ queryKey: ["ATOLLS"], queryFn: () => getAtolls(), placeholderData: keepPreviousData, staleTime: 1, }); const [atoll, setAtoll] = React.useState(); const [actionState, action, isPending] = React.useActionState(signup, { message: "", db_error: "", errors: undefined, payload: new FormData(), }); React.useEffect(() => { console.log(atoll); }, [atoll]); const params = useSearchParams(); const phoneNumberFromUrl = params.get("phone_number"); const NUMBER_WITHOUT_DASH = phoneNumberFromUrl?.split("-").join(""); if (actionState?.db_error === "invalidPersonValidation") { return ( <>
{actionState.message}
Go to{" "} login
); } return (
{actionState?.errors?.fieldErrors.name && ( {actionState?.errors?.fieldErrors.name} )}
{actionState?.errors?.fieldErrors?.id_card?.[0] && ( {actionState?.errors.fieldErrors.id_card[0]} )} {actionState?.db_error === "id_card" && ( {actionState?.message} )}
{actionState?.errors?.fieldErrors?.address && ( {actionState?.errors?.fieldErrors?.address} )}
{actionState?.errors?.fieldErrors?.dob && ( {actionState?.errors?.fieldErrors?.dob} )}
{actionState?.errors?.fieldErrors.accNo && ( {actionState?.errors?.fieldErrors.accNo} )}
{actionState?.errors?.fieldErrors?.phone_number?.[0] && ( {actionState?.errors.fieldErrors.phone_number[0]} )} {actionState?.db_error === "phone_number" && ( {actionState?.message} )}
{actionState?.errors?.fieldErrors?.terms && ( {actionState?.errors?.fieldErrors?.terms} )}
{actionState?.errors?.fieldErrors?.policy && ( {actionState?.errors?.fieldErrors?.policy} )}
Already have an account?{" "} login
); }