"use client"; import { useState, useEffect } from "react"; import Image from "next/image"; import { fetchActivities, type ActivitiesData } from "@/lib/api/points"; import { useApp } from "@/contexts/AppContext"; type FilterTab = "all" | "referrals" | "deposits"; export default function ActivityHistory() { const { t } = useApp(); const [activeTab, setActiveTab] = useState("all"); const [currentPage, setCurrentPage] = useState(1); const [data, setData] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { loadActivities(); }, [activeTab, currentPage]); async function loadActivities() { setLoading(true); const result = await fetchActivities(activeTab, currentPage, 5); setData(result); setLoading(false); } const totalPages = data?.pagination.totalPage || 1; return (
{/* Top Section - Title and Filter Tabs */}

{t("points.activityHistory")}

{/* Filter Tabs */}
{/* Table Card */}
{/* Table Header Section */}

{t("points.activityHistory")}

{t("points.trackActivities")}

Refresh {t("points.refreshLastUpdated").replace("{time}", "2")}
{/* Table */}
{/* Table Header */}
{t("points.user")}
{t("points.friends")}
{t("points.code")}
{t("points.points")}
{/* Table Body */} {loading ? (
) : data && data.activities && data.activities.length > 0 ? ( data.activities.map((row, index) => (
{row.userAddress}
{row.friendAddress || "-"}
{row.inviteCode || "-"}
+{row.points}
)) ) : (
{t("points.noActivitiesFound")}
)}
{/* Pagination */} {totalPages > 1 && (
{/* Previous Button */} {/* Page Numbers */}
{Array.from({ length: totalPages }, (_, i) => i + 1).map((page) => ( ))}
{/* Next Button */}
)}
); }