import { Button } from '@/components/ui/button'; import { UserPlus } from 'lucide-react'; import { KeenIcon, useDataGrid } from '@/components'; import { DefaultTooltip } from '@/components'; import { useState,useEffect } from 'react'; import { toast } from 'sonner'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { getAuth } from '@/auth'; import { apiConfig } from '@/config/api.config'; import { useAuthContext } from '@/auth'; const API_URL = apiConfig.service_customer; interface ListToolbarProps { createMember: () => void; onReload: () => void; isReloading: boolean; groups: any; } const ListToolbar = ({ createMember, onReload, isReloading, groups }: ListToolbarProps) => { const [groupFilter, setGroupFilter] = useState(''); const { table, reload } = useDataGrid(); const [searchValue, setSearchValue] = useState(); const [typeSearchValue, setSearchTypeValue] = useState(); const [isAdmin, setisAdmin] = useState(false); const { getUser } = useAuthContext(); useEffect(() => { getUserData(); }, []); async function getUserData() { let userlogin:any = await getUser(); let userloginrole = userlogin?.data?.role?.name; if (userloginrole === 'Admin') setisAdmin(true); } const handleSearch = (e: React.ChangeEvent) => { e.preventDefault() table.resetPageIndex() if (typeSearchValue === 'username') { table.getColumn('username')?.setFilterValue(searchValue); table.getColumn('msisdn')?.setFilterValue(''); } if (typeSearchValue === 'msisdn') { table.getColumn('msisdn')?.setFilterValue(searchValue); table.getColumn('username')?.setFilterValue(''); } table.getColumn('group_name')?.setFilterValue(groupFilter); }; const handleGroupChange = (e: any) => { let value = e.target.value; if (value === '__all__') value = ''; setGroupFilter(value); // if (typeSearchValue === 'username') table.getColumn('username')?.setFilterValue(searchValue); // if (typeSearchValue === 'msisdn') table.getColumn('msisdn')?.setFilterValue(searchValue); // table.getColumn('group_name')?.setFilterValue(value); }; const generateExportFilters = (groupFilter: string, typeSearchValue: any, searchValue: any): { id: string; value: string }[] => { const filters: { id: string; value: string }[] = []; if (groupFilter) filters.push({ id: 'group_name', value: groupFilter }); if (typeSearchValue && searchValue) filters.push({ id: typeSearchValue, value: searchValue }); return filters; }; const exporDataToExcel = async (filters: { id: string; value: string }[]) => { try { const filterParam = encodeURIComponent(JSON.stringify(filters)); const response = await fetch(`${API_URL}/customer/export-excel?filter=${filterParam}`, { method: 'GET', headers: { Authorization: `Bearer ${getAuth()?.access_token}`, } }); if (!response.ok) throw new Error('Failed to fetch file'); const blob = await response.blob(); const contentDisposition = response.headers.get('content-disposition'); const currentYear = new Date().getFullYear(); const filename = `TPAY_members_${currentYear}.xlsx`; return { blob, filename }; } catch (error:any) { console.error('Error exporting data:', error); toast.error(error) } }; return (
handleSearch(e)}>
{ (!isAdmin) ? ( <> ) : ('') }
); }; export default ListToolbar;