// pages/page.tsx "use client"; import React, { useEffect, useState } from 'react'; import { motion } from 'framer-motion'; import Link from 'next/link'; import Header from '@/components/Header'; import Footer from '@/components/Footer'; import { PrivyProvider } from '@privy-io/react-auth'; interface User { username: string; total_gains: string; img_url: string; } const Page: React.FC = () => { const [userData, setUserData] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { const fetchData = async () => { try { const response = await fetch("https://api.callfi.io/get_user_list.php"); if (!response.ok) { throw new Error("Network response was not ok"); } const data = await response.json(); setUserData(data); } catch (error: any) { setError(error.message); } finally { setLoading(false); } }; // Conditionally execute useEffect on the client side only if (typeof window !== 'undefined') { fetchData(); } }, []); // Sort userData by total_gains before rendering const sortedUserData = [...userData].sort((a, b) => parseFloat(b.total_gains) - parseFloat(a.total_gains)); return ( <>

User Rankings

{loading ? (

Loading...

) : error ? (

Error: {error}

) : (
    {sortedUserData.map((user) => (
  • {`${user.username}'s
    {user.username} Points: {(parseFloat(user.total_gains) * 100).toFixed(2)}
  • ))}
)}
); }; export default function WrappedUsersPage(props) { return ( ); }