"use client";

import DashboardPage from "./DashboardPage";
import Loading from "@/components/Loading";

import { useState, useEffect } from "react";
import { useRouter } from "next/navigation";
import axios from "axios";
import Cookies from "js-cookie";

export default function Dashboard() {
  const router = useRouter();
  const [loading, setLoading] = useState(true);
  const [username, setUsername] = useState("");
  const [name, setName] = useState("");

  useEffect(() => {
    const init = async () => {
      const token = Cookies.get("token");
      if (!token) {
        router.push("/");
      }
      const response = await axios.post("/api/user/validate", { token });
      if (response.data.message !== "Valid") {
        Cookies.remove("token");
        router.push("/");
      } else {
        setUsername(response.data.username);
        setName(response.data.name);
        setLoading(false);
      }
    };
    init();
  }, []);

  if (loading) {
    return <Loading />;
  } else {
    return <DashboardPage username={username} name={name} />;
  }
}