import React, { useEffect, useRef, useState } from "react";
import FingerprintJS from "@fingerprintjs/fingerprintjs";
import Image from "next/image";
import apiInstance from "@/interceptor/instance";
import Head from "next/head";

function Airtel(): JSX.Element {
  const [isLoading, setIsLoading] = useState(true);
  const hasExecuted = useRef(false);
  

  const fetchDataAndPost = async () => {
    try {
      const headersRes = await fetch("/api/headers");
      const { userAgent, ip } = await headersRes.json();
      const fp = await FingerprintJS.load();
      const result = await fp.get();

      const postData = {
        deviceId: result.visitorId,
        userAgent,
        ipAddress: ip,
        source: 'app'
      };

      await apiInstance.post("/api/airtelUserActivity", postData);
    } catch (error) {
      return null;
    }
  };

  const getOs = (): string => {
    const userAgent = navigator.userAgent || navigator.vendor || (window as any)?.opera;
    if (/windows phone/i.test(userAgent)) return "Windows Phone";
    if (/android/i.test(userAgent)) return "Android";
    if (/iPad|iPhone|iPod/.test(userAgent) && !(window as any)?.MSStream) return "iOS";
    return "unknown";
  };
  
  useEffect(() => {
    if (hasExecuted.current) return;
    hasExecuted.current = true;
  
    const executeFetchAndRedirect = async () => {
      await fetchDataAndPost();
      const os = getOs().toLowerCase();
      window.location.href = os === "iOS"
        ? "https://apps.apple.com/in/app/jazzagain/id6476974335"
        : "https://play.google.com/store/apps/details?id=com.jazzagain&pcampaignid=web_share&pli=1";
      setIsLoading(false)
    }

    executeFetchAndRedirect();
  }, []);

  return (
    <>
    
    <Head><link rel="shortcut icon" href="/images/jazzagian-logo.png" />
        <script
          dangerouslySetInnerHTML={{
            __html: `
              !function(f,b,e,v,n,t,s)
              {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
              n.callMethod.apply(n,arguments):n.queue.push(arguments)};
              if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
              n.queue=[];t=b.createElement(e);t.async=!0;
              t.src=v;s=b.getElementsByTagName(e)[0];
              s.parentNode.insertBefore(t,s)}(window, document,'script',
              'https://connect.facebook.net/en_US/fbevents.js');
              fbq('init', '360254480441103');
              fbq('track', 'Airtel');
            `,
          }}
        />
        <noscript>
          <Image
            height="1"
            width="1"
            alt=""
            style={{ display: 'none' }}
            src="https://www.facebook.com/tr?id=360254480441103&ev=Airtel&noscript=1"
          />
        </noscript>
      </Head>
    
    <div>
      {isLoading ? (
        <div className="flex items-center justify-center h-[100vh]">
          <Image
            src={"/images/loading.gif"}
            width={100}
            height={100}
            alt="...loading"
            />
        </div>
      ) : (
        <></>
      )}
    </div>
      </>
  );
}

export default Airtel;
