DataScope26/WEB
0
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 