"use client";
import { useEffect } from "react";
import { useSyncStore } from "./store/sync";
import { showToast } from "./components/ui-lib";
import { AUTHEN_PAGE } from "./constant";
export default function SyncOnFirstLoad() {
  const syncStore = useSyncStore();

  useEffect(() => {
    // Parse cookies using the cookie library
    // const cookies = cookie.parse(document.cookie || "");
    // const authToken = cookies["sb-zzgkylsbdgwoohcbompi-auth-token"] || null;

    console.log("[Auth Check] Checking user authentication status");

    fetch("/api/auth/check")
      .then((res) => {
        if (res.status === 401) {
          console.log("[Auth Check] User is not authenticated");
          // Handle unauthenticated user - redirect or show login modal

          showToast("Please login first");

          setTimeout(() => {
            window.location.href = AUTHEN_PAGE;
          }, 500);
          return;
        }

        return res.json();
      })
      .then((data) => {
        if (data) {
          console.log("[Auth Check] User is authenticated:", data.user);

          // Assuming data.user contains the user information(user email)
          const email = data.user.email || "";

          // Only update upstash.username, keep other params
          syncStore.update((config) => (config.upstash.username = email));

          // You can now use the user data as needed
          //   syncStore.sync();
          // console.log("[Sync] User data synced successfully");
        }
      })
      .catch((e) => {
        console.error("[Auth Check] Error checking authentication:", e);
        // Handle error appropriately
      });
  }, []);

  return null;
}
