diff --git a/src/common/drawers.js b/src/common/drawers.js
index b42c44b9f..5ec6d05a2 100644
--- a/src/common/drawers.js
+++ b/src/common/drawers.js
@@ -16,4 +16,6 @@ export const DRAWERS = {
QUICK_CREATE_ITEM: 'quick-create-item',
CREDIT_NOTE_DETAIL_DRAWER: 'credit-note-detail-drawer',
VENDOR_CREDIT_DETAIL_DRAWER: 'vendor-credit-detail-drawer',
+ REFUND_CREDIT_NOTE_DETAIL_DRAWER:'refund-credit-detail-drawer',
+ REFUND_VENDOR_CREDIT_DETAIL_DRAWER:'refund-vendor-detail-drawer'
};
diff --git a/src/components/Customers/CustomerDrawerLink.js b/src/components/Customers/CustomerDrawerLink.js
new file mode 100644
index 000000000..e99c20244
--- /dev/null
+++ b/src/components/Customers/CustomerDrawerLink.js
@@ -0,0 +1,25 @@
+import React from 'react';
+import * as R from 'ramda';
+
+import { ButtonLink } from 'components';
+import withDrawerActions from 'containers/Drawer/withDrawerActions';
+
+function CustomerDrawerLinkComponent({
+ // #ownProps
+ children,
+ customerId,
+
+ // #withDrawerActions
+ openDrawer,
+}) {
+ // Handle view customer drawer.
+ const handleCustomerDrawer = () => {
+ openDrawer('customer-details-drawer', { customerId });
+ };
+
+ return {children};
+}
+
+export const CustomerDrawerLink = R.compose(withDrawerActions)(
+ CustomerDrawerLinkComponent,
+);
diff --git a/src/components/Customers/index.js b/src/components/Customers/index.js
new file mode 100644
index 000000000..124141b39
--- /dev/null
+++ b/src/components/Customers/index.js
@@ -0,0 +1 @@
+export * from './CustomerDrawerLink';
diff --git a/src/components/DrawersContainer.js b/src/components/DrawersContainer.js
index b7c0e8fe6..e508519bd 100644
--- a/src/components/DrawersContainer.js
+++ b/src/components/DrawersContainer.js
@@ -19,6 +19,8 @@ import QuickCreateItemDrawer from '../containers/Drawers/QuickCreateItemDrawer';
import QuickWriteVendorDrawer from '../containers/Drawers/QuickWriteVendorDrawer';
import CreditNoteDetailDrawer from '../containers/Drawers/CreditNoteDetailDrawer';
import VendorCreditDetailDrawer from '../containers/Drawers/VendorCreditDetailDrawer';
+import RefundCreditNoteDetailDrawer from '../containers/Drawers/RefundCreditNoteDetailDrawer';
+import RefundVendorCreditDetailDrawer from '../containers/Drawers/RefundVendorCreditDetailDrawer';
import { DRAWERS } from 'common/drawers';
@@ -51,6 +53,12 @@ export default function DrawersContainer() {
+
+
);
}
diff --git a/src/components/Vendors/VendorDrawerLink.js b/src/components/Vendors/VendorDrawerLink.js
new file mode 100644
index 000000000..91b528e6f
--- /dev/null
+++ b/src/components/Vendors/VendorDrawerLink.js
@@ -0,0 +1,23 @@
+import React from 'react';
+import * as R from 'ramda';
+
+import { ButtonLink } from 'components';
+import withDrawerActions from 'containers/Drawer/withDrawerActions';
+
+function VendorDrawerLinkComponent({
+ // #ownProps
+ children,
+ vendorId,
+
+ // #withDrawerActions
+ openDrawer,
+}) {
+ // Handle view customer drawer.
+ const handleVendorDrawer = () => {
+ openDrawer('vendor-details-drawer', { vendorId });
+ };
+
+ return {children};
+}
+
+export const VendorDrawerLink = R.compose(withDrawerActions)(VendorDrawerLinkComponent);
diff --git a/src/components/Vendors/index.js b/src/components/Vendors/index.js
new file mode 100644
index 000000000..8f9cc7544
--- /dev/null
+++ b/src/components/Vendors/index.js
@@ -0,0 +1 @@
+export * from './VendorDrawerLink'
\ No newline at end of file
diff --git a/src/components/index.js b/src/components/index.js
index feb3f934c..04a2b4138 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -92,6 +92,8 @@ export * from './TextStatus';
export * from './Tags';
export * from './CommercialDoc';
export * from './Card';
+export * from './Customers'
+export * from './Vendors'
const Hint = FieldHint;
diff --git a/src/containers/Accounting/JournalsLanding/components.js b/src/containers/Accounting/JournalsLanding/components.js
index 79207ca15..1384e3a87 100644
--- a/src/containers/Accounting/JournalsLanding/components.js
+++ b/src/containers/Accounting/JournalsLanding/components.js
@@ -179,6 +179,7 @@ export const ActionsMenu = ({
/>
+
}
diff --git a/src/containers/Accounting/MakeJournal/MakeJournalFormFloatingActions.js b/src/containers/Accounting/MakeJournal/MakeJournalFormFloatingActions.js
index a95429551..469f722d1 100644
--- a/src/containers/Accounting/MakeJournal/MakeJournalFormFloatingActions.js
+++ b/src/containers/Accounting/MakeJournal/MakeJournalFormFloatingActions.js
@@ -151,6 +151,7 @@ export default function MakeJournalFloatingAction() {
disabled={isSubmitting}
intent={Intent.PRIMARY}
onClick={handleSubmitPublishBtnClick}
+ style={{ minWidth: '85px' }}
text={}
/>
{});
+ .catch(() => {})
+ .finally(() => {
+ closeAlert(name);
+ });
};
return (
@@ -65,4 +72,5 @@ function RefundCreditNoteDeleteAlert({
export default compose(
withAlertStoreConnect(),
withAlertActions,
+ withDrawerActions,
)(RefundCreditNoteDeleteAlert);
diff --git a/src/containers/Alerts/VendorCeditNotes/RefundVendorCreditDeleteAlert.js b/src/containers/Alerts/VendorCeditNotes/RefundVendorCreditDeleteAlert.js
index 526d92bfb..4e17eb2ec 100644
--- a/src/containers/Alerts/VendorCeditNotes/RefundVendorCreditDeleteAlert.js
+++ b/src/containers/Alerts/VendorCeditNotes/RefundVendorCreditDeleteAlert.js
@@ -7,6 +7,7 @@ import { useDeleteRefundVendorCredit } from 'hooks/query';
import withAlertActions from 'containers/Alert/withAlertActions';
import withAlertStoreConnect from 'containers/Alert/withAlertStoreConnect';
+import withDrawerActions from 'containers/Drawer/withDrawerActions';
import { compose } from 'utils';
@@ -20,6 +21,9 @@ function RefundVendorCreditDeleteAlert({
payload: { vendorCreditId },
// #withAlertActions
closeAlert,
+
+ // #withDrawerActions
+ closeDrawer,
}) {
const { mutateAsync: deleteRefundVendorCreditMutate, isLoading } =
useDeleteRefundVendorCredit();
@@ -39,9 +43,12 @@ function RefundVendorCreditDeleteAlert({
),
intent: Intent.SUCCESS,
});
- closeAlert(name);
+ closeDrawer('refund-vendor-detail-drawer');
})
- .catch(() => {});
+ .catch(() => {})
+ .finally(() => {
+ closeAlert(name);
+ });
};
return (
@@ -67,4 +74,5 @@ function RefundVendorCreditDeleteAlert({
export default compose(
withAlertStoreConnect(),
withAlertActions,
+ withDrawerActions,
)(RefundVendorCreditDeleteAlert);
diff --git a/src/containers/CashFlow/AccountTransactions/utils.js b/src/containers/CashFlow/AccountTransactions/utils.js
index 59f8b43ea..567422ea6 100644
--- a/src/containers/CashFlow/AccountTransactions/utils.js
+++ b/src/containers/CashFlow/AccountTransactions/utils.js
@@ -71,6 +71,14 @@ export const handleCashFlowTransactionType = (reference, openDrawer) => {
return openDrawer('payment-made-detail-drawer', {
paymentMadeId: reference.reference_id,
});
+ case 'RefundCreditNote':
+ return openDrawer('refund-credit-detail-drawer', {
+ refundTransactionId: reference.reference_id,
+ });
+ case 'RefundVendorCredit':
+ return openDrawer('refund-vendor-detail-drawer', {
+ refundTransactionId: reference.reference_id,
+ });
default:
return openDrawer('cashflow-transaction-drawer', {
diff --git a/src/containers/CashFlow/CashFlowAccounts/CashflowAccountsGrid.js b/src/containers/CashFlow/CashFlowAccounts/CashflowAccountsGrid.js
index cf06161b9..dc6104046 100644
--- a/src/containers/CashFlow/CashFlowAccounts/CashflowAccountsGrid.js
+++ b/src/containers/CashFlow/CashFlowAccounts/CashflowAccountsGrid.js
@@ -271,6 +271,7 @@ function CashflowAccountContextMenu({
+
}
diff --git a/src/containers/Customers/CustomersLanding/components.js b/src/containers/Customers/CustomersLanding/components.js
index 9d878bbf4..2eacc0103 100644
--- a/src/containers/Customers/CustomersLanding/components.js
+++ b/src/containers/Customers/CustomersLanding/components.js
@@ -63,6 +63,7 @@ export function ActionsMenu({
+
}
text={intl.get('delete_customer')}
diff --git a/src/containers/Dialogs/RefundVendorCreditDialog/RefundVendorCreditFloatingActions.js b/src/containers/Dialogs/RefundVendorCreditDialog/RefundVendorCreditFloatingActions.js
index 02b6a80cd..8ab4496ad 100644
--- a/src/containers/Dialogs/RefundVendorCreditDialog/RefundVendorCreditFloatingActions.js
+++ b/src/containers/Dialogs/RefundVendorCreditDialog/RefundVendorCreditFloatingActions.js
@@ -33,7 +33,7 @@ function RefundVendorCreditFloatingActions({
+
+
+
+
+
+
- {paymentMade.vendor?.display_name}
+
+ {paymentMade.vendor?.display_name}
+
- {paymentReceive.customer?.display_name}
+
+ {paymentReceive.customer?.display_name}
+
- {receipt.customer?.display_name}
+
+ {receipt.customer?.display_name}
+
+
+
+
+ );
+}
+
+/**
+ * Refund credit note detail tabs.
+ * @returns {React.JSX}
+ */
+function RefundCreditNoteDetailTabs() {
+ return (
+
+ }
+ />
+
+ );
+}
+
+const RefundCreditNoteDetailRoot = styled.div``;
diff --git a/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDetailActionsBar.js b/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDetailActionsBar.js
new file mode 100644
index 000000000..8d66d7852
--- /dev/null
+++ b/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDetailActionsBar.js
@@ -0,0 +1,46 @@
+import React from 'react';
+import { Button, NavbarGroup, Classes, Intent } from '@blueprintjs/core';
+
+import { useRefundCreditNoteDrawerContext } from './RefundCreditNoteDrawerProvider';
+
+import withAlertsActions from 'containers/Alert/withAlertActions';
+import { Icon, DrawerActionsBar, FormattedMessage as T, Can } from 'components';
+import {
+ CreditNoteAction,
+ AbilitySubject,
+} from '../../../common/abilityOption';
+
+import { compose } from 'utils';
+
+/**
+ * Refund credit note actions bar.
+ */
+function RefundCreditNoteDetailActionsBar({
+ // #withAlertsActions
+ openAlert,
+}) {
+ const { refundTransactionId } = useRefundCreditNoteDrawerContext();
+
+ // Handle delete refund credit.
+ const handleDeleteRefundCreditNote = () => {
+ openAlert('refund-credit-delete', { creditNoteId: refundTransactionId });
+ };
+
+ return (
+
+
+
+ }
+ text={}
+ intent={Intent.DANGER}
+ onClick={handleDeleteRefundCreditNote}
+ />
+
+
+
+ );
+}
+
+export default compose(withAlertsActions)(RefundCreditNoteDetailActionsBar);
diff --git a/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDetailHeader.js b/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDetailHeader.js
new file mode 100644
index 000000000..de38a473b
--- /dev/null
+++ b/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDetailHeader.js
@@ -0,0 +1,47 @@
+import React from 'react';
+import intl from 'react-intl-universal';
+import { defaultTo } from 'lodash';
+
+import {
+ CommercialDocHeader,
+ FormatDate,
+ DetailsMenu,
+ DetailItem,
+} from 'components';
+
+import { useRefundCreditNoteDrawerContext } from './RefundCreditNoteDrawerProvider';
+
+export default function RefundCreditNoteDetailHeader() {
+ const { refundCreditTransaction } = useRefundCreditNoteDrawerContext();
+
+ return (
+
+
+
+ }
+ />
+
+ {refundCreditTransaction.formtted_amount}
+
+
+
+
+
+ {defaultTo(refundCreditTransaction.reference_no, '—')}
+
+
+ {defaultTo(refundCreditTransaction.description, '—')}
+
+
+
+ );
+}
diff --git a/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDetailTab.js b/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDetailTab.js
new file mode 100644
index 000000000..808a30fad
--- /dev/null
+++ b/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDetailTab.js
@@ -0,0 +1,16 @@
+import React from 'react';
+
+import { CommercialDocBox } from 'components';
+import RefundCreditNoteDetailHeader from './RefundCreditNoteDetailHeader';
+
+/**
+ * Refund credit note detail tab.
+ * @returns
+ */
+export default function RefundCreditNoteDetailTab() {
+ return (
+
+
+
+ );
+}
diff --git a/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDrawerContent.js b/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDrawerContent.js
new file mode 100644
index 000000000..912385421
--- /dev/null
+++ b/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDrawerContent.js
@@ -0,0 +1,18 @@
+import React from 'react';
+import { DrawerBody } from 'components';
+
+import RefundCreditNoteDetail from './RefundCreditNoteDetail';
+import { RefundCreditNoteDrawerProvider } from './RefundCreditNoteDrawerProvider';
+
+/**
+ * Refund credit note drawer content.
+ */
+export default function RefundCreditNoteDrawerContent({ refundTransactionId }) {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDrawerProvider.js b/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDrawerProvider.js
new file mode 100644
index 000000000..37f465f61
--- /dev/null
+++ b/src/containers/Drawers/RefundCreditNoteDetailDrawer/RefundCreditNoteDrawerProvider.js
@@ -0,0 +1,40 @@
+import React from 'react';
+import intl from 'react-intl-universal';
+import { DrawerHeaderContent, DrawerLoading } from 'components';
+import { useRefundCreditTransaction } from 'hooks/query';
+
+const RefundCreditNoteDrawerContext = React.createContext();
+
+/**
+ * Refund credit note drawer provider.
+ */
+function RefundCreditNoteDrawerProvider({ refundTransactionId, ...props }) {
+ // Handle fetch refund credit note transaction.
+ const {
+ data: refundCreditTransaction,
+ isLoading: isRefundCreditTransaction,
+ } = useRefundCreditTransaction(refundTransactionId, {
+ enabled: !!refundTransactionId,
+ });
+
+ // provider
+ const provider = {
+ refundTransactionId,
+ refundCreditTransaction,
+ };
+
+ return (
+
+
+
+
+ );
+}
+
+const useRefundCreditNoteDrawerContext = () =>
+ React.useContext(RefundCreditNoteDrawerContext);
+
+export { RefundCreditNoteDrawerProvider, useRefundCreditNoteDrawerContext };
diff --git a/src/containers/Drawers/RefundCreditNoteDetailDrawer/index.js b/src/containers/Drawers/RefundCreditNoteDetailDrawer/index.js
new file mode 100644
index 000000000..44defcdb2
--- /dev/null
+++ b/src/containers/Drawers/RefundCreditNoteDetailDrawer/index.js
@@ -0,0 +1,37 @@
+import React from 'react';
+
+import { Drawer, DrawerSuspense } from 'components';
+import withDrawers from 'containers/Drawer/withDrawers';
+
+import { compose } from 'utils';
+
+const RefundCreditNoteDrawerContent = React.lazy(() =>
+ import('./RefundCreditNoteDrawerContent'),
+);
+
+/**
+ * Refund credit note detail.
+ * @returns
+ */
+function RefundCreditNoteDetailDrawer({
+ name,
+ // #withDrawer
+ isOpen,
+ payload: { refundTransactionId },
+}) {
+ return (
+
+
+
+
+
+ );
+}
+export default compose(withDrawers())(RefundCreditNoteDetailDrawer);
diff --git a/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetail.js b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetail.js
new file mode 100644
index 000000000..b9ad02b71
--- /dev/null
+++ b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetail.js
@@ -0,0 +1,39 @@
+import React from 'react';
+import { Tab } from '@blueprintjs/core';
+import intl from 'react-intl-universal';
+import styled from 'styled-components';
+
+import { DrawerMainTabs } from 'components';
+import RefundVendorCreditDetailTab from './RefundVendorCreditDetailTab'
+import RefundVendorCreditDetailActionsBar from './RefundVendorCreditDetailActionsBar';
+
+/**
+ * Refund vendor credit detail.
+ * @returns {React.JSX}
+ */
+export default function RefundVendorCreditDetail() {
+ return (
+
+
+
+
+ );
+}
+
+/**
+ * Refund vendor credit detail tabs.
+ * @returns {React.JSX}
+ */
+function RefundVendorCreditDetailTabs() {
+ return (
+
+ }
+ />
+
+ );
+}
+
+const RefundVendorCreditDetailRoot = styled.div``;
diff --git a/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetailActionsBar.js b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetailActionsBar.js
new file mode 100644
index 000000000..a31694c51
--- /dev/null
+++ b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetailActionsBar.js
@@ -0,0 +1,45 @@
+import React from 'react';
+import { Button, NavbarGroup, Classes, Intent } from '@blueprintjs/core';
+
+import withAlertsActions from 'containers/Alert/withAlertActions';
+import { useRefundVendorCreditNoteDrawerContext } from './RefundVendorCreditDrawerProvider';
+import { Icon, DrawerActionsBar, FormattedMessage as T, Can } from 'components';
+import {
+ VendorCreditAction,
+ AbilitySubject,
+} from '../../../common/abilityOption';
+
+import { compose } from 'utils';
+
+/**
+ * Refund vendor credit actions bar.
+ */
+function RefundVendorCreditDetailActionsBar({
+ // #withAlertsActions
+ openAlert,
+}) {
+ const { refundTransactionId } = useRefundVendorCreditNoteDrawerContext();
+
+ // Handle delete refund vendor credit.
+ const handleDeleteRefundVendorCredit = () => {
+ openAlert('refund-vendor-delete', { vendorCreditId: refundTransactionId });
+ };
+
+ return (
+
+
+
+ }
+ text={}
+ intent={Intent.DANGER}
+ onClick={handleDeleteRefundVendorCredit}
+ />
+
+
+
+ );
+}
+
+export default compose(withAlertsActions)(RefundVendorCreditDetailActionsBar);
diff --git a/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetailHeader.js b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetailHeader.js
new file mode 100644
index 000000000..4140abe88
--- /dev/null
+++ b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetailHeader.js
@@ -0,0 +1,47 @@
+import React from 'react';
+import intl from 'react-intl-universal';
+import { defaultTo } from 'lodash';
+
+import {
+ CommercialDocHeader,
+ FormatDate,
+ DetailsMenu,
+ DetailItem,
+} from 'components';
+
+import { useRefundVendorCreditNoteDrawerContext } from './RefundVendorCreditDrawerProvider';
+
+export default function RefundVendorCreditDetailHeader() {
+ const { refundVendorTransaction } = useRefundVendorCreditNoteDrawerContext();
+
+ return (
+
+
+
+ }
+ />
+
+ {refundVendorTransaction.formtted_amount}
+
+
+
+
+
+ {defaultTo(refundVendorTransaction.reference_no, '—')}
+
+
+ {defaultTo(refundVendorTransaction.description, '—')}
+
+
+
+ );
+}
diff --git a/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetailTab.js b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetailTab.js
new file mode 100644
index 000000000..3e01d4a2d
--- /dev/null
+++ b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDetailTab.js
@@ -0,0 +1,15 @@
+import React from 'react';
+
+import { CommercialDocBox } from 'components';
+import RefundVendorCreditDetailHeader from './RefundVendorCreditDetailHeader';
+
+/**
+ * Refund vendor credit detail tab.
+ */
+export default function RefundVendorCreditDetailTab() {
+ return (
+
+
+
+ );
+}
diff --git a/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDrawerContent.js b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDrawerContent.js
new file mode 100644
index 000000000..eb2353d05
--- /dev/null
+++ b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDrawerContent.js
@@ -0,0 +1,21 @@
+import React from 'react';
+import { DrawerBody } from 'components';
+
+import RefundVendorCreditDetail from './RefundVendorCreditDetail';
+import { RefundVendorCreditDrawerProvider } from './RefundVendorCreditDrawerProvider';
+
+/**
+ * Refund vendor credit drawer content.
+ * @returns
+ */
+export default function RefundVendorCreditDrawerContent({
+ refundTransactionId,
+}) {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDrawerProvider.js b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDrawerProvider.js
new file mode 100644
index 000000000..dbca85739
--- /dev/null
+++ b/src/containers/Drawers/RefundVendorCreditDetailDrawer/RefundVendorCreditDrawerProvider.js
@@ -0,0 +1,43 @@
+import React from 'react';
+import intl from 'react-intl-universal';
+import { DrawerHeaderContent, DrawerLoading } from 'components';
+import { useRefundVendorCreditTransaction } from 'hooks/query';
+
+const RefundVendorCreditDrawerContent = React.createContext();
+
+/**
+ * Refund vendor credit drawer provider.
+ */
+function RefundVendorCreditDrawerProvider({ refundTransactionId, ...props }) {
+ // Handle fetch refund credit note transaction.
+ const {
+ data: refundVendorTransaction,
+ isLoading: isRefundVendorTransaction,
+ } = useRefundVendorCreditTransaction(refundTransactionId, {
+ enabled: !!refundTransactionId,
+ });
+
+ // provider
+ const provider = {
+ refundTransactionId,
+ refundVendorTransaction,
+ };
+
+ return (
+
+
+
+
+ );
+}
+
+const useRefundVendorCreditNoteDrawerContext = () =>
+ React.useContext(RefundVendorCreditDrawerContent);
+
+export {
+ RefundVendorCreditDrawerProvider,
+ useRefundVendorCreditNoteDrawerContext,
+};
diff --git a/src/containers/Drawers/RefundVendorCreditDetailDrawer/index.js b/src/containers/Drawers/RefundVendorCreditDetailDrawer/index.js
new file mode 100644
index 000000000..a99cd279e
--- /dev/null
+++ b/src/containers/Drawers/RefundVendorCreditDetailDrawer/index.js
@@ -0,0 +1,38 @@
+import React from 'react';
+
+import { Drawer, DrawerSuspense } from 'components';
+import withDrawers from 'containers/Drawer/withDrawers';
+
+import { compose } from 'utils';
+
+const RefundVendorCreditDrawerContent = React.lazy(() =>
+ import('./RefundVendorCreditDrawerContent'),
+);
+
+/**
+ * Refund credit note detail.
+ * @returns
+ */
+function RefundCreditNoteDetailDrawer({
+ name,
+ // #withDrawer
+ isOpen,
+ payload: { refundTransactionId },
+}) {
+ return (
+
+
+
+
+
+ );
+}
+
+export default compose(withDrawers())(RefundCreditNoteDetailDrawer);
diff --git a/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailHeader.js b/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailHeader.js
index b4b5ba2c5..c24d95041 100644
--- a/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailHeader.js
+++ b/src/containers/Drawers/VendorCreditDetailDrawer/VendorCreditDetailHeader.js
@@ -13,6 +13,7 @@ import {
ButtonLink,
CommercialDocHeader,
CommercialDocTopHeader,
+ VendorDrawerLink,
} from 'components';
import { useVendorCreditDetailDrawerContext } from './VendorCreditDetailDrawerProvider';
import { VendorCreditDetailsStatus } from './utils';
@@ -44,7 +45,9 @@ export default function VendorCreditDetailHeader() {
- {vendorCredit.vendor?.display_name}
+
+ {vendorCredit.vendor?.display_name}
+
{
- setSubmitPayload({ redirect: true, publish: true});
+ setSubmitPayload({ redirect: true, publish: true });
submitForm();
};
@@ -152,6 +152,7 @@ export default function ExpenseFloatingFooter() {
loading={isSubmitting}
intent={Intent.PRIMARY}
onClick={handleSubmitPublishBtnClick}
+ style={{ minWidth: '85px' }}
text={}
/>
+
}
text={intl.get('delete_expense')}
diff --git a/src/containers/Items/components.js b/src/containers/Items/components.js
index e4bf09d98..5de8e29ff 100644
--- a/src/containers/Items/components.js
+++ b/src/containers/Items/components.js
@@ -140,6 +140,7 @@ export function ItemsActionMenuList({
+
}
diff --git a/src/containers/Preferences/Currencies/components.js b/src/containers/Preferences/Currencies/components.js
index 431628b27..2c25b607a 100644
--- a/src/containers/Preferences/Currencies/components.js
+++ b/src/containers/Preferences/Currencies/components.js
@@ -5,6 +5,7 @@ import {
Button,
Position,
MenuItem,
+ MenuDivider,
Intent,
} from '@blueprintjs/core';
import intl from 'react-intl-universal';
@@ -18,7 +19,6 @@ export function ActionMenuList({
row: { original },
payload: { onEditCurrency, onDeleteCurrency },
}) {
-
return (