feat: receipt detail footer.

This commit is contained in:
elforjani13
2021-12-26 13:26:10 +02:00
parent a075b998d3
commit 8ea92513fe
3 changed files with 76 additions and 39 deletions

View File

@@ -1,51 +1,35 @@
import React from 'react'; import React from 'react';
import styled from 'styled-components';
import { import {
CommercialDocFooter,
T, T,
TotalLines, If,
TotalLine, DetailsMenu,
TotalLineBorderStyle, DetailItem,
TotalLineTextStyle,
FormatNumber,
} from 'components'; } from 'components';
import { useReceiptDetailDrawerContext } from './ReceiptDetailDrawerProvider'; import { useReceiptDetailDrawerContext } from './ReceiptDetailDrawerProvider';
/** /**
* Receipts read-only details footer. * Receipt details footer
* @returns {React.JSX}
*/ */
export function ReceiptDetailFooter() { export default function ReceiptDetailFooter() {
const { receipt } = useReceiptDetailDrawerContext(); const { receipt } = useReceiptDetailDrawerContext();
return ( return (
<ReceiptDetailsFooterRoot> <CommercialDocFooter>
<ReceiptTotalLines labelColWidth={'180px'} amountColWidth={'180px'}> <DetailsMenu direction={'horizantal'} minLabelSize={'180px'}>
<TotalLine <If condition={receipt.statement}>
title={<T id={'receipt.details.subtotal'} />} <DetailItem label={<T id={'receipt.details.statement'} />}>
value={<FormatNumber value={receipt.amount} />} {receipt.statement}
/> </DetailItem>
<TotalLine </If>
title={<T id={'receipt.details.total'} />} <If condition={receipt.receipt_message}>
value={receipt.formatted_amount} <DetailItem label={<T id={'receipt.details.receipt_message'} />}>
borderStyle={TotalLineBorderStyle.DoubleDark} {receipt.receipt_message}
textStyle={TotalLineTextStyle.Bold} </DetailItem>
/> </If>
<TotalLine </DetailsMenu>
title={<T id={'receipt.details.payment_amount'} />} </CommercialDocFooter>
value={receipt.formatted_amount}
borderStyle={TotalLineBorderStyle.DoubleDark}
/>
<TotalLine
title={<T id={'receipt.details.due_amount'} />}
value={'0'}
/>
</ReceiptTotalLines>
</ReceiptDetailsFooterRoot>
); );
} }
export const ReceiptDetailsFooterRoot = styled.div``;
export const ReceiptTotalLines = styled(TotalLines)`
margin-left: auto;
`;

View File

@@ -5,7 +5,8 @@ import { CommercialDocBox } from 'components';
import ReceiptDetailHeader from './ReceiptDetailHeader'; import ReceiptDetailHeader from './ReceiptDetailHeader';
import ReceiptDetailTable from './ReceiptDetailTable'; import ReceiptDetailTable from './ReceiptDetailTable';
import { ReceiptDetailFooter } from './ReceiptDetailFooter'; import ReceiptDetailTableFooter from './ReceiptDetailTableFooter';
import ReceiptDetailFooter from './ReceiptDetailFooter';
export default function ReceiptDetailTab() { export default function ReceiptDetailTab() {
return ( return (
@@ -13,6 +14,7 @@ export default function ReceiptDetailTab() {
<CommercialDocBox> <CommercialDocBox>
<ReceiptDetailHeader /> <ReceiptDetailHeader />
<ReceiptDetailTable /> <ReceiptDetailTable />
<ReceiptDetailTableFooter />
<ReceiptDetailFooter /> <ReceiptDetailFooter />
</CommercialDocBox> </CommercialDocBox>
</ReceiptDetailsOverviewRoot> </ReceiptDetailsOverviewRoot>

View File

@@ -0,0 +1,51 @@
import React from 'react';
import styled from 'styled-components';
import {
T,
TotalLines,
TotalLine,
TotalLineBorderStyle,
TotalLineTextStyle,
FormatNumber,
} from 'components';
import { useReceiptDetailDrawerContext } from './ReceiptDetailDrawerProvider';
/**
* Receipts read-only details table footer.
*/
export default function ReceiptDetailTableFooter() {
const { receipt } = useReceiptDetailDrawerContext();
return (
<ReceiptDetailsFooterRoot>
<ReceiptTotalLines labelColWidth={'180px'} amountColWidth={'180px'}>
<TotalLine
title={<T id={'receipt.details.subtotal'} />}
value={<FormatNumber value={receipt.amount} />}
/>
<TotalLine
title={<T id={'receipt.details.total'} />}
value={receipt.formatted_amount}
borderStyle={TotalLineBorderStyle.DoubleDark}
textStyle={TotalLineTextStyle.Bold}
/>
<TotalLine
title={<T id={'receipt.details.payment_amount'} />}
value={receipt.formatted_amount}
borderStyle={TotalLineBorderStyle.DoubleDark}
/>
<TotalLine
title={<T id={'receipt.details.due_amount'} />}
value={'0'}
/>
</ReceiptTotalLines>
</ReceiptDetailsFooterRoot>
);
}
export const ReceiptDetailsFooterRoot = styled.div``;
export const ReceiptTotalLines = styled(TotalLines)`
margin-left: auto;
`;