import Navbar from '@/components/Navbar' import Footer from '@/components/Footer' import Head from 'next/head' import Card from '@/components/DashboardCard' import PopupForm from '@/components/DashboardCreateEntity' import { useState, useEffect } from 'react' import Link from 'next/link' import { useRouter } from 'next/router' export const getServerSideProps = (async ctx => { const { req } = ctx const cookie = req.cookies.user_auth if (!cookie) { return { redirect: { destination: '/login', permanent: false } } } else { const cookie_key = req.cookies.user_apiKey if (!cookie_key) { return { redirect: { destination: '/logout', permanent: false } } } const response = await fetch(`${process.env.API_URL}/user/find?id=${req.cookies.user_id}`, { method: 'GET', headers: { 'authorization': process.env.AUTH, }, }) const data_json = await response.json() if (!response.ok) { console.error(response, data_json) return { redirect: { destination: '/logout', permanent: false } } } return { props: { data: data_json } } } }) const Dashboard = ({ data }) => { const router = useRouter() const [isPopupVisible, setPopupVisibility] = useState(false) const handleCreateButtonClick = () => { setPopupVisibility(true) } const handleClosePopup = () => { setPopupVisibility(false) } useEffect(() => { const handleMousemove = (e) => { const rect = e.currentTarget.getBoundingClientRect(); const x = e.clientX - rect.left; const y = e.clientY - rect.top; e.currentTarget.style.setProperty("--mouse-x", `${x}px`); e.currentTarget.style.setProperty("--mouse-y", `${y}px`); }; document.querySelectorAll(".dashboard_entity_card").forEach((card) => { card.addEventListener("mousemove", handleMousemove); return () => { card.removeEventListener("mousemove", handleMousemove); }; }); }, []); return ( <> Dashboard - Assistify {Object.keys(data).length !== 0 ? ( <>

Welcome, {data.name} 👋

{/* */}
{isPopupVisible && }
{data.entities.length !== 0 ? ( data.entities?.map((entity, index) => { return ( ) }) ) : (
You haven't created any entities yet.
)}
) : ( /* Work on this, show a error */ Error )}