import React, { useState, useEffect } from 'react' import ToolUserView from './View' import { getListEmployees, deleteEmployee, changeStatusEmployee, } from 'app/apis/Functions/Employee' import { useHistory } from 'react-router-dom' import KEY from 'app/assets/Key' import { connect } from 'react-redux' import { showLoading, hideLoading } from 'app/redux/actions/loadingAction' import { toast } from 'react-toastify' import useDebounce from 'app/hooks/useDebounce' const ToolNotificate = (props) => { const [txtSearch, setTxtSearch] = useState('') const [activeSelected, setActiveSeleted] = useState(null) const [changeActive, setChangeActive] = useState(1) const searchDebount = useDebounce(txtSearch, 1000) const [pageIndex, setPageIndex] = useState(0) const [pageSize] = useState(10) const [totalRecords, setTotalRecord] = useState(0) const history = useHistory() const [data, setData] = useState([]) const [permissions, setPermissions] = useState([]) // useEffect(() => { // getListPermission(); // }, []); // const getListPermission = () => { // let temp = localStorage.getItem(KEY.LISTPATH); // let listPath = JSON.parse(temp); // if (listPath) { // const newlist = listPath.map((e) => { // if (e.function_code) return e.function_code; // return e.action_code; // }); // setPermissions(newlist); // } // }; const handeChangeActive = async (id, status_id) => { props.showLoading() const res = await changeStatusEmployee({ id, status_id }) props.hideLoading() if (res.data.code == 200) { getData() toast.success('Thay đổi trạng thái thành công!', { theme: 'colored', }) } else { toast.error('Thay đổi trạng thái thất bại!', { theme: 'colored', }) } } const getData = async () => { props.showLoading() const res = await getListEmployees({ full_name: searchDebount, page_no: pageIndex + 1, page_size: pageSize, }) props.hideLoading() if (res.data.code == 200 && res.data.data) { const newList = res.data.data.data.map((e, i) => { return { ...e, index: i + 1 + pageIndex * pageSize } }) setData(newList) setTotalRecord(res.data.data.total_elements) } else if (res.data.code == 401) { localStorage.removeItem(KEY.API_TOKEN) setTimeout(() => { history.push('/') }, 100) } else { // enqueueSnackbar('Error!', { variant: 'error' }) } } useEffect(() => { getData() }, [searchDebount, pageIndex]) const removeItem = async (id) => { props.showLoading() const res = await deleteEmployee({ id }) props.hideLoading() if (res.data.code == 200) { getData() toast.success('Xoá bản ghi thành công!', { theme: 'colored', }) } else if (res.data.code == 401) { localStorage.removeItem(KEY.API_TOKEN) setTimeout(() => { history.push('/') }, 100) } else { toast.error('Xoá bản ghi thất bại!', { theme: 'colored', }) } } return ( <ToolUserView data={data} removeItem={removeItem} setTxtSearch={setTxtSearch} setActiveSeleted={setActiveSeleted} pageIndex={pageIndex} changeActive={changeActive} setChangeActive={setChangeActive} setPageIndex={setPageIndex} activeSelected={activeSelected} handeChangeActive={handeChangeActive} totalRecords={totalRecords} permissions={permissions} /> ) } const mapStateToProps = (state) => { return {} } export default connect(mapStateToProps, { showLoading, hideLoading })( ToolNotificate )