feat: print action when click on print button

This commit is contained in:
Ahmed Bouhuolia
2024-05-23 19:39:23 +02:00
parent fe41f7976d
commit dc5bdf0b66
16 changed files with 239 additions and 64 deletions

View File

@@ -26,8 +26,10 @@ import {
import { AccountAction, AbilitySubject } from '@/constants/abilityOption';
import { DialogsName } from '@/constants/dialogs';
import { useHistory } from 'react-router-dom';
import { useRefreshAccounts } from '@/hooks/query/accounts';
import { useAccountsChartContext } from './AccountsChartProvider';
import { useResourceExportPdf } from '@/hooks/query/FinancialReports/use-export-pdf';
import withAccounts from './withAccounts';
import withAccountsTableActions from './withAccountsTableActions';
@@ -37,7 +39,6 @@ import withSettings from '@/containers/Settings/withSettings';
import withSettingsActions from '@/containers/Settings/withSettingsActions';
import { compose } from '@/utils';
import { useHistory } from 'react-router-dom';
/**
* Accounts actions bar.
@@ -57,22 +58,18 @@ function AccountsActionsBar({
// #withAccountsTableActions
setAccountsTableState,
// #ownProps
onFilterChanged,
// #withSettings
accountsTableSize,
// #withSettingsActions
addSetting,
}) {
const { resourceViews, fields } = useAccountsChartContext();
const history = useHistory();
const onClickNewAccount = () => {
openDialog(DialogsName.AccountForm, {});
};
const { resourceViews, fields } = useAccountsChartContext();
const { mutateAsync: exportPdf, isLoading: isExportPdfLoading } =
useResourceExportPdf();
// Accounts refresh action.
const { refresh } = useRefreshAccounts();
@@ -81,35 +78,29 @@ function AccountsActionsBar({
const handleBulkDelete = () => {
openAlert('accounts-bulk-delete', { accountsIds: accountsSelectedRows });
};
// Handle bulk accounts activate.
const handelBulkActivate = () => {
openAlert('accounts-bulk-activate', { accountsIds: accountsSelectedRows });
};
// Handle bulk accounts inactivate.
const handelBulkInactive = () => {
openAlert('accounts-bulk-inactivate', {
accountsIds: accountsSelectedRows,
});
};
// Handle tab changing.
const handleTabChange = (view) => {
setAccountsTableState({ viewSlug: view ? view.slug : null });
};
// Handle inactive switch changing.
const handleInactiveSwitchChange = (event) => {
const checked = event.target.checked;
setAccountsTableState({ inactiveMode: checked });
};
// Handle click a refresh accounts
const handleRefreshBtnClick = () => {
refresh();
};
// Handle table row size change.
const handleTableRowSizeChange = (size) => {
addSetting('accounts', 'tableSize', size);
@@ -122,6 +113,14 @@ function AccountsActionsBar({
const handleExportBtnClick = () => {
openDialog(DialogsName.Export, { resource: 'account' });
};
// Handle the print button click.
const handlePrintBtnClick = () => {
exportPdf({ resource: 'Account' });
};
// Handle click new account.
const onClickNewAccount = () => {
openDialog(DialogsName.AccountForm, {});
};
return (
<DashboardActionsBar>
@@ -185,6 +184,8 @@ function AccountsActionsBar({
className={Classes.MINIMAL}
icon={<Icon icon="print-16" iconSize={16} />}
text={<T id={'print'} />}
disabled={isExportPdfLoading}
onClick={handlePrintBtnClick}
/>
<Button
className={Classes.MINIMAL}