CoolFace
Apppublic

DataScope26/WEB

sourceHugging Faceupdated 8d agoView on Hugging Face
0likes
useWaitlistConfirmation.js48 linesDownload Raw Back to hooks
1import { useCallback, useMemo, useState } from "react";2import { useSearchParams } from "react-router-dom";3import { confirmWaitlistSignup } from "../services/apiWaitlist.js";4 5export const useWaitlistConfirmation = () => {6  const [searchParams] = useSearchParams();7  const token = useMemo(() => searchParams.get("token"), [searchParams]);8 9  const [isLoading, setIsLoading] = useState(false);10  const [error, setError] = useState("");11  const [isSuccess, setIsSuccess] = useState(false);12  const [message, setMessage] = useState("");13 14  const confirm = useCallback(async () => {15    if (!token) {16      setError("El enlace de confirmación no es válido.");17      return false;18    }19 20    setIsLoading(true);21    setError("");22    setMessage("");23 24    try {25      const response = await confirmWaitlistSignup(token);26      setIsSuccess(true);27      setMessage(response?.data?.message || "Tu inscripción quedó confirmada.");28      return true;29    } catch (err) {30      const backendError = err.response?.data?.error || "No se pudo confirmar tu registro.";31      setError(backendError);32      setIsSuccess(false);33      return false;34    } finally {35      setIsLoading(false);36    }37  }, [token]);38 39  return {40    token,41    isLoading,42    error,43    isSuccess,44    message,45    confirm,46  };47};48