import { DefaultTooltip, KeenIcon, useDataGrid } from '@/components'; import { useCallApi } from '@/hooks'; import { apiConfig } from '@/config/api.config'; import { Button } from '@/components/ui/button'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { useCallback, useEffect, useState } from 'react'; import { toast } from 'sonner'; const API_URL_WALLET = apiConfig.service_wallet; interface WalletProps { ID: string; name: string; } interface GroupProps { ID: string; name: string; } const ListToolbar = ({ filters, setFilters }: { filters: any; setFilters: (value: any) => void; }) => { const { table, reload } = useDataGrid(); const { GetData } = useCallApi(); const [searchValue, setSearchValue] = useState(''); const [wallets, setWallets] = useState([]); const [walletId, setWalletId] = useState(null); const [groups, setGroups] = useState([]); const [groupId, setGroupId] = useState(null); const fetchWallets = async () => { try { const response = await GetData(`${API_URL_WALLET}/dashboard/wallet/`, { limit: 100, page: 1, with_deleted: false, order_field: 'created_at', order_direction: 'ASC' }); setWallets(response?.data.list || []); } catch (error) { console.error('Error fetching wallets', error); } }; const fetchGroups = async () => { try { const response = await GetData(`${API_URL_WALLET}/dashboard/group/`, { limit: 100, page: 1, with_deleted: false, order_field: 'created_at', order_direction: 'ASC' }); setGroups(response?.data.list || []); } catch (error) { console.error('Error fetching groups', error); } }; useEffect(() => { fetchWallets(); fetchGroups(); }, []); const handleApplyFilters = () => { const appliedFilters: any[] = []; if (searchValue) { appliedFilters.push({ id: 'msisdn', value: searchValue }); } if (walletId) { appliedFilters.push({ id: 'id_wallet', value: walletId }); } if (groupId) { appliedFilters.push({ id: 'id_group', value: groupId }); } setFilters(appliedFilters); }; const handleClearAllFilters = () => { setSearchValue(''); setWalletId(null); setGroupId(null); setFilters([]); setTimeout(() => { table.setPageIndex(0); reload(); }, 0); }; const handleRefresh = () => { table.setPageIndex(0); reload(); }; useEffect(() => { table.setPageIndex(0); reload(); }, [filters]); return (
); }; export default ListToolbar;