import { TopNav } from "@dashboard/components/AppLayout/TopNav"; import CardMenu from "@dashboard/components/CardMenu"; import CardSpacer from "@dashboard/components/CardSpacer"; import { DateTime } from "@dashboard/components/Date"; import { DetailPageLayout } from "@dashboard/components/Layouts"; import Savebar from "@dashboard/components/Savebar"; import Skeleton from "@dashboard/components/Skeleton"; import { ChannelUsabilityDataQuery, OrderLineInput, SearchCustomersQuery, } from "@dashboard/graphql"; import { SubmitPromise } from "@dashboard/hooks/useForm"; import useNavigator from "@dashboard/hooks/useNavigator"; import OrderChannelSectionCard from "@dashboard/orders/components/OrderChannelSectionCard"; import { OrderBothTypes, OrderErrorFragment, OrderSharedType, } from "@dashboard/orders/types"; import { orderDraftListUrl } from "@dashboard/orders/urls"; import { FetchMoreProps, RelayToFlat } from "@dashboard/types"; import { Typography } from "@material-ui/core"; import { ConfirmButtonTransitionState } from "@saleor/macaw-ui"; import { Box } from "@saleor/macaw-ui/next"; import React from "react"; import { useIntl } from "react-intl"; import OrderCustomer, { CustomerEditData } from "../OrderCustomer"; import OrderDraftDetails from "../OrderDraftDetails/OrderDraftDetails"; import OrderHistory, { FormData as HistoryFormData } from "../OrderHistory"; import OrderDraftAlert from "./OrderDraftAlert"; export interface OrderDraftPageProps extends FetchMoreProps { disabled: boolean; order?: OrderBothTypes; channelUsabilityData?: ChannelUsabilityDataQuery; users: RelayToFlat; usersLoading: boolean; errors: OrderErrorFragment[]; saveButtonBarState: ConfirmButtonTransitionState; fetchUsers: (query: string) => void; onBillingAddressEdit: () => void; onCustomerEdit: (data: CustomerEditData) => void; onDraftFinalize: () => void; onDraftRemove: () => void; onNoteAdd: (data: HistoryFormData) => SubmitPromise; onOrderLineAdd: () => void; onOrderLineChange: (id: string, data: OrderLineInput) => void; onOrderLineRemove: (id: string) => void; onProductClick: (id: string) => void; onShippingAddressEdit: () => void; onShippingMethodEdit: () => void; onProfileView: () => void; } const OrderDraftPage: React.FC = props => { const { disabled, fetchUsers, hasMore, saveButtonBarState, onBillingAddressEdit, onCustomerEdit, onDraftFinalize, onDraftRemove, onFetchMore, onNoteAdd, onOrderLineAdd, onOrderLineChange, onOrderLineRemove, onShippingAddressEdit, onShippingMethodEdit, onProfileView, order, channelUsabilityData, users, usersLoading, errors, } = props; const navigate = useNavigator(); const intl = useIntl(); return ( {order?.number ? "#" + order?.number : undefined}
{order && order.created ? ( ) : ( )}
} >
navigate(orderDraftListUrl())} onSubmit={onDraftFinalize} labels={{ confirm: intl.formatMessage({ id: "4Z14xW", defaultMessage: "Finalize", description: "button", }), }} />
); }; OrderDraftPage.displayName = "OrderDraftPage"; export default OrderDraftPage;