This commit is contained in:
a.bouhuolia
2021-08-21 19:00:31 +02:00
29 changed files with 663 additions and 19 deletions

View File

@@ -12,6 +12,7 @@ import withEstimatesActions from './withEstimatesActions';
import withSettings from 'containers/Settings/withSettings';
import withAlertsActions from 'containers/Alert/withAlertActions';
import withDrawerActions from 'containers/Drawer/withDrawerActions';
import withDialogActions from 'containers/Dialog/withDialogActions';
import { useEstimatesListContext } from './EstimatesListProvider';
import { ActionsMenu, useEstiamtesTableColumns } from './components';
@@ -28,6 +29,9 @@ function EstimatesDataTable({
// #withDrawerActions
openDrawer,
// #withDialogAction
openDialog,
}) {
const history = useHistory();
@@ -77,6 +81,16 @@ function EstimatesDataTable({
history.push(`/invoices/new?from_estimate_id=${id}`, { action: id });
};
// Handle view detail estimate.
const handleViewDetailEstimate = ({ id }) => {
openDrawer('estimate-detail-drawer', { estimateId: id });
};
// Handle print estimate.
const handlePrintEstimate = ({ id }) => {
openDialog('estimate-pdf-preview', { estimateId: id });
};
// Handles fetch data.
const handleFetchData = useCallback(
({ pageIndex, pageSize, sortBy }) => {
@@ -120,6 +134,8 @@ function EstimatesDataTable({
onDelete: handleDeleteEstimate,
onDrawer: handleDrawerEstimate,
onConvert: handleConvertToInvoice,
onViewDetails: handleViewDetailEstimate,
onPrint: handlePrintEstimate,
}}
/>
);
@@ -129,6 +145,7 @@ export default compose(
withEstimatesActions,
withAlertsActions,
withDrawerActions,
withDialogActions,
withSettings(({ organizationSettings }) => ({
baseCurrency: organizationSettings?.baseCurrency,
})),

View File

@@ -58,15 +58,16 @@ export function ActionsMenu({
onDelete,
onDrawer,
onConvert,
onViewDetails,
onPrint,
},
}) {
return (
<Menu>
<MenuItem
icon={<Icon icon="reader-18" />}
text={intl.get('view_details')}
onClick={safeCallback(onViewDetails, original)}
/>
<MenuDivider />
<MenuItem
@@ -119,6 +120,11 @@ export function ActionsMenu({
text={intl.get('estimate_paper')}
onClick={safeCallback(onDrawer, original)}
/>
<MenuItem
icon={<Icon icon={'print-16'} iconSize={16} />}
text={intl.get('print')}
onClick={safeCallback(onPrint, original)}
/>
<MenuItem
text={intl.get('delete_estimate')}
intent={Intent.DANGER}
@@ -149,8 +155,6 @@ function ActionsCell(props) {
}
export function useEstiamtesTableColumns() {
return React.useMemo(
() => [
{
@@ -204,7 +208,7 @@ export function useEstiamtesTableColumns() {
accessor: 'reference',
width: 90,
className: 'reference',
}
},
],
[],
);