import React from 'react'; import { Intent, Button, ButtonGroup, Popover, PopoverInteractionKind, Position, Menu, MenuItem, } from '@blueprintjs/core'; import { useFormikContext } from 'formik'; import { FormattedMessage as T } from 'components'; import { useHistory } from 'react-router-dom'; import { CLASSES } from 'common/classes'; import classNames from 'classnames'; import { useInvoiceFormContext } from './InvoiceFormProvider'; import { If, Icon } from 'components'; /** * Invoice floating actions bar. */ export default function InvoiceFloatingActions() { const history = useHistory(); // Formik context. const { resetForm, submitForm, isSubmitting } = useFormikContext(); // Invoice form context. const { setSubmitPayload, invoice } = useInvoiceFormContext(); // Handle submit & deliver button click. const handleSubmitDeliverBtnClick = (event) => { setSubmitPayload({ redirect: true, deliver: true }); submitForm(); }; // Handle submit, deliver & new button click. const handleSubmitDeliverAndNewBtnClick = (event) => { setSubmitPayload({ redirect: false, deliver: true, resetForm: true }); submitForm(); }; // Handle submit, deliver & continue editing button click. const handleSubmitDeliverContinueEditingBtnClick = (event) => { setSubmitPayload({ redirect: false, deliver: true }); submitForm(); }; // Handle submit as draft button click. const handleSubmitDraftBtnClick = (event) => { setSubmitPayload({ redirect: true, deliver: false }); submitForm(); }; // Handle submit as draft & new button click. const handleSubmitDraftAndNewBtnClick = (event) => { setSubmitPayload({ redirect: false, deliver: false, resetForm: true }); submitForm(); }; // Handle submit as draft & continue editing button click. const handleSubmitDraftContinueEditingBtnClick = (event) => { setSubmitPayload({ redirect: false, deliver: false }); submitForm(); }; // Handle cancel button click. const handleCancelBtnClick = (event) => { history.goBack(); }; const handleClearBtnClick = (event) => { resetForm(); }; return (