import React, { useEffect, useState } from 'react' import { router } from '@inertiajs/react' import { usePrevious } from 'react-use' import { Head } from '@inertiajs/react' import { Button, Dropdown } from 'flowbite-react' import { HiPencil, HiTrash } from 'react-icons/hi' import { useModalState } from '@/hooks' import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout' import Pagination from '@/Components/Pagination' import ModalConfirm from '@/Components/ModalConfirm' import FormModal from './FormModal' import SearchInput from '@/Components/SearchInput' import { hasPermission } from '@/utils' import ImportModal from './ImportModal' export default function Customer(props) { const { query: { links, data }, auth, } = props const [search, setSearch] = useState('') const preValue = usePrevious(search) const confirmModal = useModalState() const formModal = useModalState() const importModal = useModalState() const toggleFormModal = (customer = null) => { formModal.setData(customer) formModal.toggle() } const toggleImportModal = () => { importModal.toggle() } const handleDeleteClick = (customer) => { confirmModal.setData(customer) confirmModal.toggle() } const onDelete = () => { if (confirmModal.data !== null) { router.delete(route('customer.destroy', confirmModal.data.id)) } } const params = { q: search } useEffect(() => { if (preValue) { router.get( route(route().current()), { q: search }, { replace: true, preserveState: true, } ) } }, [search]) const canCreate = hasPermission(auth, 'create-customer') const canUpdate = hasPermission(auth, 'update-customer') const canDelete = hasPermission(auth, 'delete-customer') return (
{canCreate && (
)}
setSearch(e.target.value)} value={search} />
{data.map((customer) => ( ))}
Code Name Point
{customer.code} {customer.name} {customer.last_point} {canUpdate && ( toggleFormModal( customer ) } >
Edit
)} {canDelete && ( handleDeleteClick( customer ) } >
Delete
)}
) }