// @ts-nocheck import React from 'react'; import { useHistory } from 'react-router-dom'; import { Button, NavbarGroup, Classes, NavbarDivider, Intent, Tooltip, Position, } from '@blueprintjs/core'; import { useInvoiceDetailDrawerContext } from './InvoiceDetailDrawerProvider'; import withDialogActions from '@/containers/Dialog/withDialogActions'; import withAlertsActions from '@/containers/Alert/withAlertActions'; import withDrawerActions from '@/containers/Drawer/withDrawerActions'; import { If, Can, Icon, DrawerActionsBar, FormattedMessage as T, } from '@/components'; import { SaleInvoiceAction, PaymentReceiveAction, AbilitySubject, } from '../../../constants/abilityOption'; import { compose } from '@/utils'; import { BadDebtMenuItem } from './utils'; import { DRAWERS } from '@/constants/drawers'; import { DialogsName } from '@/constants/dialogs'; import { ArrowBottomLeft } from '@/icons/ArrowBottomLeft'; /** * Invoice details action bar. */ function InvoiceDetailActionsBar({ // #withDialogActions openDialog, // #withAlertsActions openAlert, // #withDrawerActions closeDrawer, }) { const history = useHistory(); // Invoice detail drawer context. const { invoiceId, invoice } = useInvoiceDetailDrawerContext(); // Handle edit sale invoice. const handleEditInvoice = () => { history.push(`/invoices/${invoiceId}/edit`); closeDrawer(DRAWERS.INVOICE_DETAILS); }; // Hanlde deliver sale invoice. const handleDeliverInvoice = ({ id }) => { openAlert('invoice-deliver', { invoiceId }); }; // Handle convert to invoice. const handleConvertToCreitNote = () => { history.push(`/credit-notes/new?from_invoice_id=${invoiceId}`, { invoiceId: invoiceId, }); closeDrawer(DRAWERS.INVOICE_DETAILS); }; // Handle delete sale invoice. const handleDeleteInvoice = () => { openAlert('invoice-delete', { invoiceId }); }; // Handle print invoices. const handlePrintInvoice = () => { openDialog('invoice-pdf-preview', { invoiceId }); }; // Handle quick payment invoice. const handleQuickPaymentInvoice = () => { openDialog('quick-payment-receive', { invoiceId }); }; // Handle write-off invoice. const handleBadDebtInvoice = () => { openDialog('write-off-bad-debt', { invoiceId }); }; // Handle notify via SMS. const handleNotifyViaSMS = () => { openDialog('notify-invoice-via-sms', { invoiceId }); }; // Handle cancele write-off invoice. const handleCancelBadDebtInvoice = () => { openAlert('cancel-bad-debt', { invoiceId }); }; const handleMailInvoice = () => { openDialog(DialogsName.InvoiceMail, { invoiceId }); }; const handleShareButtonClick = () => { openDialog(DialogsName.SharePaymentLink, { transactionId: invoiceId, transactionType: 'SaleInvoice', }); }; return (