import { useRouter } from "next/router"; import { useEffect, useState } from "react"; import { getAccessToken, usePrivy, useWallets } from "@privy-io/react-auth"; import Head from "next/head"; import { useBalance } from 'wagmi'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import {faDiscord, faGoogle, faMeta, faTwitter, faXTwitter } from "@fortawesome/free-brands-svg-icons"; import {faAdd, faFileExport, faLink, faTrash, faUnlink, faWallet } from "@fortawesome/free-solid-svg-icons"; import { useSetActiveWallet } from "@privy-io/wagmi"; async function verifyToken() { const url = "/api/verify"; const accessToken = await getAccessToken(); const result = await fetch(url, { headers: { ...(accessToken ? { Authorization: `Bearer ${accessToken}` } : undefined), }, }); return await result.json(); } export default function DashboardPage() { const [verifyResult, setVerifyResult] = useState(0); const [username, setUsername] = useState(''); const [vaultData, setVaultData] = useState({ prehp: "0", vc: "0" }); const router = useRouter(); const { ready, authenticated, user, logout,connectWallet, exportWallet, unlinkWallet, linkDiscord, unlinkDiscord, linkTwitter, unlinkTwitter,linkGoogle, unlinkGoogle } = usePrivy(); const { wallets } = useWallets(); const { data: balanceData } = useBalance({ address: user?.wallet?.address as `0x${string}`, }); const balance = balanceData?.formatted; const token = balanceData?.symbol; useEffect(() => { if (ready && !authenticated) { router.push("/"); } }, [ready, authenticated, router]); useEffect(() => { async function fetchUsername() { if (ready) { try { const response = await fetch(`https://vps.playpoolstudios.com/metahunt/api/launcher/get_display_name_public.php?id=${user?.id}`); const data = await response.text(); setUsername(data); // Assuming the response contains the display name under `display_name` } catch (error) { console.error("Error fetching username:", error); } } } async function fetchVaultData() { if (user?.id) { try { const response = await fetch(`http://vps.playpoolstudios.com/metahunt/api/launcher/get_vault.php?id=${user?.id}`); const data = await response.json(); setVaultData({ prehp: data.prehp, vc: data.vc }); } catch (error) { console.error("Error fetching vault data:", error); } } } fetchUsername(); fetchVaultData(); }, [ready]); const numAccounts = user?.linkedAccounts?.length || 0; const canRemoveAccount = numAccounts > 1; const email = user?.email; const phone = user?.phone; const wallet = user?.wallet; const googleSubject = user?.google?.subject || null; const twitterSubject = user?.twitter?.subject || null; const discordSubject = user?.discord?.subject || null; function ToggleDiscord(){ if(user?.discord){ unlinkDiscord(user?.discord.subject); }else{ linkDiscord(); } } function ToggleTwitter(){ if(user?.twitter){ unlinkTwitter(user?.twitter.subject); }else{ linkTwitter(); } } function ToggleGoogle(){ if(user?.google){ unlinkGoogle(user?.google.subject); }else{ linkGoogle(); } } return ( <> W3B Games Dashboard
{ready && authenticated ? ( <>

Welcome {username || "User"},

Vault Credits

{vaultData.vc || "0"} VC

{user?.wallet?.address}

{balance || 0} {token}

Pre-hunt Points

{vaultData.prehp || "0"} PHP

Socials

Twitter

{user?.twitter ? "@"+user?.twitter.username : "-"}

Discord

{user?.discord ? "@"+user?.discord?.username : "-"}

Google

{user?.google ? "@"+user?.google?.email : "-"}

Wallets

{ wallets.map((wallet)=>{ return (

{wallet.walletClientType}

{wallet.address}

{/* */} {wallet.connectorType == "embedded" && ()}
); }) }
{/*
{discordSubject ? ( ) : ( )} {wallet ? ( ) : ( )}
*/} ) : null}
); }