feat: wip invoice customizer

This commit is contained in:
Ahmed Bouhuolia
2024-09-09 19:40:23 +02:00
parent 132c1dfdbe
commit dc18bde6be
18 changed files with 602 additions and 194 deletions

View File

@@ -0,0 +1,3 @@
export default function ReceiptCustomizeContent() {
return <h1>asdasdasd</h1>;
}

View File

@@ -0,0 +1,32 @@
// @ts-nocheck
import React from 'react';
import * as R from 'ramda';
import { Drawer, DrawerSuspense } from '@/components';
import withDrawers from '@/containers/Drawer/withDrawers';
const ReceiptCustomizeContent = React.lazy(
() => import('./ReceiptCustomizeContent'),
);
/**
* Receipt customize drawer.
* @returns {React.ReactNode}
*/
function ReceiptCustomizeDrawerRoot({
name,
// #withDrawer
isOpen,
payload: {},
}) {
return (
<Drawer isOpen={isOpen} name={name} size={'100%'}>
<DrawerSuspense>
<ReceiptCustomizeContent />
</DrawerSuspense>
</Drawer>
);
}
export const ReceiptCustomizeDrawer = R.compose(withDrawers())(
ReceiptCustomizeDrawerRoot,
);

View File

@@ -7,6 +7,11 @@ import {
NavbarGroup,
Intent,
Alignment,
Popover,
PopoverInteractionKind,
Position,
Menu,
MenuItem,
} from '@blueprintjs/core';
import { useHistory } from 'react-router-dom';
@@ -38,6 +43,8 @@ import { SaleReceiptAction, AbilitySubject } from '@/constants/abilityOption';
import { DialogsName } from '@/constants/dialogs';
import { compose } from '@/utils';
import withDrawerActions from '@/containers/Drawer/withDrawerActions';
import { DRAWERS } from '@/constants/drawers';
/**
* Receipts actions bar.
@@ -55,6 +62,9 @@ function ReceiptActionsBar({
// #withDialogActions
openDialog,
// #withDrawerActions
openDrawer,
// #withSettingsActions
addSetting,
}) {
@@ -103,6 +113,10 @@ function ReceiptActionsBar({
const handlePrintButtonClick = () => {
downloadExportPdf({ resource: 'SaleReceipt' });
};
// Handle customize button click.
const handleCustomizeBtnClick = () => {
openDrawer(DRAWERS.RECEIPT_CUSTOMIZE);
};
return (
<DashboardActionsBar>
@@ -173,6 +187,25 @@ function ReceiptActionsBar({
<NavbarDivider />
</NavbarGroup>
<NavbarGroup align={Alignment.RIGHT}>
<Popover
minimal={true}
interactionKind={PopoverInteractionKind.CLICK}
position={Position.BOTTOM_RIGHT}
modifiers={{
offset: { offset: '0, 4' },
}}
content={
<Menu>
<MenuItem
onClick={handleCustomizeBtnClick}
text={'Customize Receipt'}
/>
</Menu>
}
>
<Button icon={<Icon icon="cog-16" iconSize={16} />} minimal={true} />
</Popover>
<NavbarDivider />
<Button
className={Classes.MINIMAL}
icon={<Icon icon="refresh-16" iconSize={14} />}
@@ -193,4 +226,5 @@ export default compose(
receiptsTableSize: receiptSettings?.tableSize,
})),
withDialogActions,
withDrawerActions,
)(ReceiptActionsBar);