import React, { useState, useEffect } from 'react' import ToolUserView from './View' import { listRequest, updateStatusRequest } from 'app/apis/Functions/request' import { useHistory } from 'react-router-dom' import KEY from '../../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' import { useTranslation } from 'react-i18next' const ToolNotificate = (props) => { const [txtSearch, setTxtSearch] = useState('') const searchDebount = useDebounce(txtSearch, 1000) const [activeSelected, setActiveSeleted] = useState(null) const [changeActive, setChangeActive] = useState(1) const [status, setStatus] = useState() const [pageIndex, setPageIndex] = useState(0) const [pageSize] = useState(10) const [totalRecords, setTotalRecord] = useState(0) const history = useHistory() const { t } = useTranslation() const [data, setData] = useState([]) const [permissions, setPermissions] = useState([]) const handeChangeActive = async (id, status_id) => { props.showLoading() const res = await updateStatusRequest({ id: 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(t(res.data.error), { theme: 'colored', }) } } const getData = async (isInit) => { props.showLoading() let res if (isInit) { setPageIndex(0) res = await listRequest({ cus_name: searchDebount, page_no: 0, page_size: pageSize, status, care_type: 1, }) } else { res = await listRequest({ cus_name: searchDebount, page_no: pageIndex + 1, page_size: pageSize, status, care_type: 1, }) } props.hideLoading() console.log('res', res) if (res.data.code == 200 && res.data.data) { console.log(res.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 { toast.error(t(res.data.error), { theme: 'colored', }) } } useEffect(() => { getData(true) }, [searchDebount, status]) useEffect(() => { getData(false) }, [pageIndex]) const removeItem = async (id) => {} 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} status={status} setStatus={setStatus} /> ) } const mapStateToProps = (state) => { return {} } export default connect(mapStateToProps, { showLoading, hideLoading })( ToolNotificate )