diff --git a/src/pages/wallet/wallet-history/hooks/ManageWalletHistoryContext.tsx b/src/pages/wallet/wallet-history/hooks/ManageWalletHistoryContext.tsx index 71d4d39..84a7a5f 100644 --- a/src/pages/wallet/wallet-history/hooks/ManageWalletHistoryContext.tsx +++ b/src/pages/wallet/wallet-history/hooks/ManageWalletHistoryContext.tsx @@ -6,10 +6,8 @@ import { ColumnDef } from '@tanstack/react-table'; import React, { createContext, useCallback, useMemo, useState } from 'react'; import ListToolbar from '../blocks/ListToolbar'; -const formatNumber = (num: number, currencyCode: string = 'USD'): string => { +const formatNumber = (num: number): string => { return num.toLocaleString('en-US', { - style: 'currency', - currency: currencyCode, minimumFractionDigits: 2, maximumFractionDigits: 2 }); @@ -110,10 +108,7 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode } { accessorKey: 'amount', header: ({ column }) => , - cell: ({ row }) => { - const currencyCode = row.original.balance_type?.currency?.code || 'USD'; - return formatNumber(row.original.amount, currencyCode); - }, + cell: ({ row }) => formatNumber(row.original.amount), enableSorting: false, enableHiding: false, meta: { @@ -134,10 +129,7 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode } { accessorKey: 'amount_this_month', header: ({ column }) => , - cell: ({ row }) => { - const currencyCode = row.original.balance_type?.currency?.code || 'USD'; - return formatNumber(row.original.amount_this_month, currencyCode); - }, + cell: ({ row }) => formatNumber(row.original.amount_this_month), enableSorting: false, enableHiding: false, meta: { @@ -161,19 +153,18 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode } headerClassName: 'w-[200px]' } }, + // { + // accessorFn: (row) => row.balance_type?.name, + // id: 'balance_type_name', + // header: ({ column }) => , + // enableSorting: false, + // enableHiding: false, + // meta: { + // headerClassName: 'w-[200px]' + // } + // }, { - accessorFn: (row) => row.balance_type.name, - id: 'balance_type_name', - header: ({ column }) => , - enableSorting: false, - enableHiding: false, - meta: { - headerClassName: 'w-[200px]' - } - }, - { - accessorFn: (row) => row.balance_type.currency.name, - id: 'currency_name', + accessorKey: 'currency_name', header: ({ column }) => , enableSorting: false, enableHiding: false, @@ -182,8 +173,7 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode } } }, { - accessorFn: (row) => row.balance_type.currency.code, - id: 'currency_code', + accessorKey: 'currency_code', header: ({ column }) => , enableSorting: false, enableHiding: false, @@ -201,7 +191,7 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode } } }, { - accessorFn: (row) => row.group.is_bank, + accessorFn: (row) => row.group?.is_bank, id: 'is_bank', header: ({ column }) => , enableSorting: false, @@ -274,9 +264,20 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode } order_direction: 'ASC' }); + const currenciesResponse = await GetData(`${API_URL_WALLET}/dashboard/currency/`, { + limit: 100, + page: 1, + with_deleted: false, + order_field: 'created_at', + order_direction: 'ASC' + }); + const walletsMap = walletsResponse?.data?.list ? walletsResponse.data.list.reduce((acc: any, wallet: any) => { - acc[wallet.ID] = wallet.name; + acc[wallet.ID] = { + name: wallet.name, + id_currency: wallet.id_currency + }; return acc; }, {}) : {}; @@ -288,11 +289,34 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode } }, {}) : {}; - const enrichedData = response?.data.list.map((item: any) => ({ - ...item, - name: walletsMap[item.id_wallet] || 'Unknown Wallet', - group_name: groupsMap[item.id_group] || 'Unknown Group' - })); + const currenciesMap = currenciesResponse?.data?.list + ? currenciesResponse.data.list.reduce((acc: any, currency: any) => { + acc[currency.ID] = { + name: currency.name, + code: currency.code + }; + return acc; + }, {}) + : {}; + + const enrichedData = response?.data.list.map((item: any) => { + const walletInfo = walletsMap[item.id_wallet] || { + name: 'Unknown Wallet', + id_currency: null + }; + const currencyInfo = currenciesMap[walletInfo.id_currency] || { + name: 'Unknown Currency', + code: 'USD' + }; + + return { + ...item, + name: walletInfo.name, + group_name: groupsMap[item.id_group] || 'Unknown Group', + currency_name: currencyInfo.name, + currency_code: currencyInfo.code + }; + }); setWallets(enrichedData); return { @@ -337,4 +361,4 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode } }; export { ManageWalletContext, ManageWalletContextProvider }; -export type { WalletProps }; \ No newline at end of file +export type { WalletProps };