'use client'; import { useRouter } from 'next/navigation'; import { FilterMatchMode, FilterOperator } from 'primereact/api'; import { Button } from 'primereact/button'; import { Column } from 'primereact/column'; import { DataTable, DataTableFilterMeta } from 'primereact/datatable'; import { InputText } from 'primereact/inputtext'; import { ProgressBar } from 'primereact/progressbar'; import React, { useEffect, useRef, useState } from 'react'; import { CustomerService } from '../../../../demo/service/CustomerService'; import type { Demo } from '@/types'; function List() { const [customers, setCustomers] = useState([]); const [filters, setFilters] = useState({}); const [loading, setLoading] = useState(true); const [globalFilterValue, setGlobalFilterValue] = useState(''); const router = useRouter(); const dt = useRef(null); const getCustomers = (data: Demo.Customer[]) => { return [...(data || [])].map((d) => { d.date = new Date(d.date); return d; }); }; const formatDate = (value: Date) => { return value.toLocaleDateString('en-US', { day: '2-digit', month: '2-digit', year: 'numeric' }); }; const clearFilter = () => { initFilters(); }; const initFilters = () => { setFilters({ global: { value: null, matchMode: FilterMatchMode.CONTAINS }, name: { operator: FilterOperator.AND, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] }, 'country.name': { operator: FilterOperator.AND, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] }, representative: { value: null, matchMode: FilterMatchMode.IN }, date: { operator: FilterOperator.AND, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] }, activity: { value: null, matchMode: FilterMatchMode.BETWEEN } }); setGlobalFilterValue(''); }; useEffect(() => { CustomerService.getCustomersLarge().then((data) => { setCustomers(getCustomers(data)); setLoading(false); }); initFilters(); }, []); const onGlobalFilterChange = (e: React.ChangeEvent) => { const { value } = e.target; let _filters = { ...filters }; (_filters['global'] as any).value = value; setFilters(_filters); setGlobalFilterValue(value); }; const renderHeader = () => { return (
); }; const nameBodyTemplate = (customer: Demo.Customer) => { return ( <> Name {customer.name} ); }; const countryBodyTemplate = (customer: Demo.Customer) => { return ( <> {customer.country.name} {customer.country.name} ); }; const createdByBodyTemplate = (customer: Demo.Customer) => { return (
{customer.representative.name} {customer.representative.name}
); }; const dateBodyTemplate = (customer: Demo.Customer) => { return formatDate(customer.date); }; const activityBodyTemplate = (customer: Demo.Customer) => { return ; }; const header = renderHeader(); return (
); } export default List;