import Button from "@material-ui/core/Button"; import Dialog from "@material-ui/core/Dialog"; import DialogActions from "@material-ui/core/DialogActions"; import DialogContent from "@material-ui/core/DialogContent"; import DialogContentText from "@material-ui/core/DialogContentText"; import DialogTitle from "@material-ui/core/DialogTitle"; import TextField from "@material-ui/core/TextField"; import ConfirmButton, { ConfirmButtonTransitionState } from "@saleor/components/ConfirmButton"; import Form from "@saleor/components/Form"; import FormSpacer from "@saleor/components/FormSpacer"; import { buttonMessages } from "@saleor/intl"; import { OrderErrorFragment } from "@saleor/orders/types/OrderErrorFragment"; import { getFormErrors } from "@saleor/utils/errors"; import getOrderErrorMessage from "@saleor/utils/errors/order"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; export interface FormData { amount: number; } export interface OrderPaymentDialogProps { confirmButtonState: ConfirmButtonTransitionState; errors: OrderErrorFragment[]; open: boolean; initial: number; variant: "capture" | "refund"; onClose: () => void; onSubmit: (data: FormData) => void; } const OrderPaymentDialog: React.FC = ({ confirmButtonState, errors, open, initial, variant, onClose, onSubmit }) => { const intl = useIntl(); const formFields = ["payment"]; const formErrors = getFormErrors(formFields, errors); return (
{({ data, change, submit }) => ( <> {variant === "capture" ? intl.formatMessage({ defaultMessage: "Capture Payment", description: "dialog header" }) : intl.formatMessage({ defaultMessage: "Refund Payment", description: "dialog header" })} {errors.length > 0 && ( <> {errors .filter(err => !formFields.includes(err.field)) .map(err => ( {getOrderErrorMessage(err, intl)} ))} )} )}
); }; OrderPaymentDialog.displayName = "OrderPaymentDialog"; export default OrderPaymentDialog;