Files
expert-front/src/components/dashboard/passenger-boss/Buttons/printFormA.jsx
AmirHossein Mahmoodi 2cdcaecb2e add print form a and b
2023-12-31 13:18:27 +03:30

51 lines
2.0 KiB
JavaScript

import {useTranslations} from "next-intl";
import {useRouter} from "next/router";
import {useState} from "react";
import useRequest from "@/lib/app/hooks/useRequest";
import usePrint from "@/lib/app/hooks/usePrint";
import {GET_PASSENGER_BOSS} from "@/core/data/apiRoutes";
import {Button, CircularProgress} from "@mui/material";
import PrintIcon from "@mui/icons-material/Print";
const PrintFormA = () => {
const t = useTranslations();
const router = useRouter()
const [loading, setLoading] = useState(false)
const requestServer = useRequest({auth: true, pending: false, success: {notification: {show: false}}})
const {setPrintPage, setPrintTitle} = usePrint()
const clickHandler = () => {
setLoading(true)
const params = new URLSearchParams();
params.set("start", '0');
params.set("filters", '[]');
params.set("sorting", '[]');
requestServer(`${GET_PASSENGER_BOSS}?${params}`, 'get').then((response) => {
const _chunkSize = 10
const _data = response.data.data
const chunk = Array.from({length: Math.ceil(_data.length / _chunkSize)}, (v, i) =>
_data.slice(i * _chunkSize, i * _chunkSize + _chunkSize)
);
setPrintPage(chunk.length)
setPrintTitle(t('PassengerBoss.print_form_a'))
sessionStorage.setItem('form-a-print', JSON.stringify(chunk))
router.push('/dashboard/passenger-boss/prints/form-a')
}).catch(() => {
setLoading(false)
})
}
return (
<Button
color="primary"
variant="contained"
size="small"
disabled={loading}
sx={{textTransform: "unset", alignSelf: "center"}}
startIcon={loading ? <CircularProgress size={18} color="inherit"/> : <PrintIcon/>}
onClick={clickHandler}
>
{t("PassengerBoss.print_form_a")}
</Button>
)
}
export default PrintFormA