2019-06-19 14:40:52 +00:00
|
|
|
import Button from "@material-ui/core/Button";
|
|
|
|
import Card from "@material-ui/core/Card";
|
|
|
|
import CardContent from "@material-ui/core/CardContent";
|
2019-08-09 10:26:22 +00:00
|
|
|
import React from "react";
|
2019-08-26 17:44:42 +00:00
|
|
|
import { FormattedMessage, useIntl } from "react-intl";
|
2019-06-19 14:40:52 +00:00
|
|
|
|
|
|
|
import CardTitle from "@saleor/components/CardTitle";
|
|
|
|
import { maybe } from "../../../misc";
|
|
|
|
import { OrderDetails_order } from "../../types/OrderDetails";
|
|
|
|
import OrderDraftDetailsProducts, {
|
|
|
|
FormData as OrderDraftDetailsProductsFormData
|
|
|
|
} from "../OrderDraftDetailsProducts";
|
|
|
|
import OrderDraftDetailsSummary from "../OrderDraftDetailsSummary/OrderDraftDetailsSummary";
|
|
|
|
|
|
|
|
interface OrderDraftDetailsProps {
|
|
|
|
order: OrderDetails_order;
|
|
|
|
onOrderLineAdd: () => void;
|
|
|
|
onOrderLineChange: (
|
|
|
|
id: string,
|
|
|
|
data: OrderDraftDetailsProductsFormData
|
|
|
|
) => void;
|
|
|
|
onOrderLineRemove: (id: string) => void;
|
|
|
|
onShippingMethodEdit: () => void;
|
|
|
|
}
|
|
|
|
|
2019-11-07 11:34:54 +00:00
|
|
|
const OrderDraftDetails: React.FC<OrderDraftDetailsProps> = ({
|
2019-06-19 14:40:52 +00:00
|
|
|
order,
|
|
|
|
onOrderLineAdd,
|
|
|
|
onOrderLineChange,
|
|
|
|
onOrderLineRemove,
|
|
|
|
onShippingMethodEdit
|
2019-08-26 17:44:42 +00:00
|
|
|
}) => {
|
|
|
|
const intl = useIntl();
|
|
|
|
|
|
|
|
return (
|
|
|
|
<Card>
|
|
|
|
<CardTitle
|
|
|
|
title={intl.formatMessage({
|
|
|
|
defaultMessage: "Order Details",
|
|
|
|
description: "section header"
|
|
|
|
})}
|
|
|
|
toolbar={
|
|
|
|
<Button color="primary" variant="text" onClick={onOrderLineAdd}>
|
|
|
|
<FormattedMessage
|
|
|
|
defaultMessage="Add products"
|
|
|
|
description="button"
|
|
|
|
/>
|
|
|
|
</Button>
|
|
|
|
}
|
|
|
|
/>
|
|
|
|
<OrderDraftDetailsProducts
|
|
|
|
lines={maybe(() => order.lines)}
|
|
|
|
onOrderLineChange={onOrderLineChange}
|
|
|
|
onOrderLineRemove={onOrderLineRemove}
|
|
|
|
/>
|
|
|
|
{maybe(() => order.lines.length) !== 0 && (
|
|
|
|
<CardContent>
|
|
|
|
<OrderDraftDetailsSummary
|
|
|
|
order={order}
|
|
|
|
onShippingMethodEdit={onShippingMethodEdit}
|
|
|
|
/>
|
|
|
|
</CardContent>
|
|
|
|
)}
|
|
|
|
</Card>
|
|
|
|
);
|
|
|
|
};
|
2019-06-19 14:40:52 +00:00
|
|
|
OrderDraftDetails.displayName = "OrderDraftDetails";
|
|
|
|
export default OrderDraftDetails;
|