import { DefaultTooltip, KeenIcon, useDataGrid } from '@/components'; import { Button } from '@/components/ui/button'; import { useManageWalletRuleContext } from '../hooks/useManageWalletRuleContext'; import { useCallApi } from '@/hooks'; import { apiConfig } from '@/config/api.config'; import { useEffect, useState } from 'react'; import { toast } from 'sonner'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; const API_URL_WALLET = apiConfig.service_master_data; const API_URL_GROUP = apiConfig.service_customer; const ListToolbar = () => { const { table, reload } = useDataGrid(); const { GetData } = useCallApi(); const { handleAddDialog } = useManageWalletRuleContext(); const [wallets, setWallets] = useState([]); const [groups, setGroups] = useState([]); const [walletFilter, setWalletFilter] = useState(''); const [groupFilter, setGroupFilter] = useState(''); const handleClearFilter = () => { setWalletFilter(''); setGroupFilter(''); table.getColumn('wallet_name')?.setFilterValue(undefined); table.getColumn('group_name')?.setFilterValue(undefined); }; useEffect(() => { const fetchWallets = async (sorting: any) => { try { const response = await GetData(`${API_URL_WALLET}/wallet/list`, { limit: 25, page: 1, with_deleted: false, order_field: sorting[0].id, order_direction: sorting[0].desc == false ? 'ASC' : 'DESC' }); setWallets(response?.data.list.map((item: any) => ({ id: item.id, name: item.name }))); } catch (error) { toast.error('Failed to get Wallets'); } }; const fetchGroups = async (sorting: any) => { try { const response = await GetData(`${API_URL_GROUP}/groups/list`, { limit: 25, page: 1, with_deleted: false, order_field: sorting[0].id, order_direction: sorting[0].desc == false ? 'ASC' : 'DESC' }); setGroups(response?.data.list.map((item: any) => ({ id: item.id, name: item.name }))); } catch (error) { toast.error('Failed to get Groups'); } }; fetchWallets([{ id: 'wallets.name', desc: false }]); fetchGroups([{ id: 'name', desc: false }]); }, []); useEffect(() => { const filters: Record = {}; if (walletFilter) { filters['id_wallet'] = walletFilter; } if (groupFilter) { filters['id_group'] = groupFilter; } table.setColumnFilters([ { id: 'custom', value: JSON.stringify(filters) } ]); }, [walletFilter, groupFilter]); // console.log(wallets); return (
{/* Left Side: Filters */}
{/* Wallet Filter */}
{/* Group Filter */}
{/* Reset Filter Button */}
{/* Right Side: Action Buttons */}
); }; export default ListToolbar;