"use client"; import { useEffect, useState } from "react"; import List from "./List"; import Head from "./Head"; import { request } from "@/services/response"; import Cookies from "js-cookie"; import { safeJsonParse } from "@/lib/sanitize"; function Transactions({ user, loading }) { const [payments, setPayments] = useState([]); const [isLoading, setIsLoading] = useState(true); const [page, setPage] = useState(1); const [totalPages, setTotalPages] = useState(1); const [status, setStatus] = useState(undefined); // undefined = all, 'pending', 'success', 'failed' useEffect(() => { const fetchPayments = async () => { setIsLoading(true); try { const userInfo = Cookies.get("userInfo"); if (!userInfo) { setIsLoading(false); return; } const parsedData = safeJsonParse(userInfo); if (!parsedData) { setIsLoading(false); return; } const userId = parsedData.id || parsedData.uuid; if (!userId) { setIsLoading(false); return; } const params = { page, limit: 10, }; if (status) { params.status = status; } const response = await request.getMyPayments(userId, params); if (response?.data) { setPayments(response.data); if (response.page) { setTotalPages(response.page.totalPages); } } } catch (error) { console.error("Error fetching payments:", error); } finally { setIsLoading(false); } }; fetchPayments(); }, [page, status]); const handlePageChange = (event, value) => { setPage(value); }; const handleStatusChange = (newStatus) => { setStatus(newStatus); setPage(1); // Reset to first page when status changes }; return (
تاریخچه تراکنش ها