"use client"; import React, { useState, useEffect } from "react"; import { useSearchParams } from "next/navigation"; import { apiClient } from "@/app/utils/apiClient"; import Link from "next/link"; import Image from "next/image"; import "./UnsubscribePage.scss"; const UnsubscribePage = () => { const [status, setStatus] = useState<"loading" | "success" | "error">( "loading" ); const [message, setMessage] = useState( "Processing your unsubscribe request..." ); const searchParams = useSearchParams(); const currentYear = new Date().getFullYear(); useEffect(() => { const email = searchParams.get("email"); const token = searchParams.get("token"); if (!email || !token) { setStatus("error"); setMessage( "Invalid unsubscribe link. Please check your email and try again." ); return; } const processUnsubscribe = async () => { try { await new Promise((resolve) => setTimeout(resolve, 800)); const response = await apiClient( `/newsletter/unsubscribe?email=${encodeURIComponent( email )}&token=${token}` ); if (response.success) { setStatus("success"); setMessage("You have successfully unsubscribed from our newsletter."); } else { setStatus("error"); setMessage( response.message || "Failed to unsubscribe. Please try again later." ); } } catch (error: any) { setStatus("error"); setMessage( error.message || "An error occurred while processing your request." ); } }; processUnsubscribe(); }, [searchParams]); return (
StrikeTech Logo

Newsletter Subscription

{status === "loading" && ( <>

{message}

This should only take a moment. Please don't close this page.

)} {status === "success" && ( <>

{message}

We're sorry to see you go. If you change your mind, you can always resubscribe to receive updates on our latest products, exclusive offers, and tech insights.

Resubscribe Return to Homepage
)} {status === "error" && ( <>

{message}

There was a problem processing your unsubscribe request. The link may have expired or is invalid. If you continue having issues, please contact our support team.

Contact Support Return to Homepage
)}

© {currentYear} StrikeTech. All Rights Reserved.

); }; export default UnsubscribePage;