import React from 'react'; import { FormattedMessage as T, useIntl } from 'react-intl'; import { Intent, Alert } from '@blueprintjs/core'; import { AppToaster } from 'components'; import withAlertStoreConnect from 'containers/Alert/withAlertStoreConnect'; import withAlertActions from 'containers/Alert/withAlertActions'; import { useOpenBill } from 'hooks/query'; import { compose } from 'utils'; /** * Bill open alert. */ function BillOpenAlert({ name, // #withAlertStoreConnect isOpen, payload: { billId }, // #withAlertActions closeAlert, }) { const { formatMessage } = useIntl(); const { isLoading, mutateAsync: openBillMutate } = useOpenBill(); // Handle cancel open bill alert. const handleCancelOpenBill = () => { closeAlert(name); }; // Handle confirm bill open. const handleConfirmBillOpen = () => { openBillMutate(billId) .then(() => { AppToaster.show({ message: formatMessage({ id: 'the_bill_has_been_opened_successfully', }), intent: Intent.SUCCESS, }); }) .finally((error) => { closeAlert(name); }); }; return ( } confirmButtonText={} intent={Intent.WARNING} isOpen={isOpen} onCancel={handleCancelOpenBill} onConfirm={handleConfirmBillOpen} loading={isLoading} >

); } export default compose( withAlertStoreConnect(), withAlertActions, )(BillOpenAlert);