Fix adding empty order line in order drafts & unconfirmed orders (#3371)

* Extract util function to a seperate file

* Disable confirm button when no variant is selected
This commit is contained in:
Michał Droń 2023-03-17 12:44:20 +01:00 committed by GitHub
parent 7a5b919ae4
commit cdd733423b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 11 deletions

View file

@ -277,6 +277,7 @@ const OrderProductAddDialog: React.FC<OrderProductAddDialogProps> = props => {
transitionState={confirmButtonState} transitionState={confirmButtonState}
type="submit" type="submit"
onClick={handleSubmit} onClick={handleSubmit}
disabled={variants.length === 0}
> >
<FormattedMessage {...buttonMessages.confirm} /> <FormattedMessage {...buttonMessages.confirm} />
</ConfirmButton> </ConfirmButton>

View file

@ -445,3 +445,10 @@ export const prepareMoney = (
amount, amount,
currency: currency ?? "USD", currency: currency ?? "USD",
}); });
export const isAnyAddressEditModalOpen = (uri: string | undefined): boolean =>
[
"edit-customer-addresses",
"edit-shipping-address",
"edit-billing-address",
].includes(uri);

View file

@ -24,7 +24,10 @@ import {
} from "@dashboard/orders/components/OrderCustomerChangeDialog/form"; } from "@dashboard/orders/components/OrderCustomerChangeDialog/form";
import OrderCustomerChangeDialog from "@dashboard/orders/components/OrderCustomerChangeDialog/OrderCustomerChangeDialog"; import OrderCustomerChangeDialog from "@dashboard/orders/components/OrderCustomerChangeDialog/OrderCustomerChangeDialog";
import { OrderBothTypes, OrderSharedType } from "@dashboard/orders/types"; import { OrderBothTypes, OrderSharedType } from "@dashboard/orders/types";
import { getVariantSearchAddress } from "@dashboard/orders/utils/data"; import {
getVariantSearchAddress,
isAnyAddressEditModalOpen,
} from "@dashboard/orders/utils/data";
import { OrderDiscountProvider } from "@dashboard/products/components/OrderDiscountProviders/OrderDiscountProvider"; import { OrderDiscountProvider } from "@dashboard/products/components/OrderDiscountProviders/OrderDiscountProvider";
import { OrderLineDiscountProvider } from "@dashboard/products/components/OrderDiscountProviders/OrderLineDiscountProvider"; import { OrderLineDiscountProvider } from "@dashboard/products/components/OrderDiscountProviders/OrderLineDiscountProvider";
import useCustomerSearch from "@dashboard/searches/useCustomerSearch"; import useCustomerSearch from "@dashboard/searches/useCustomerSearch";
@ -82,13 +85,6 @@ interface OrderDraftDetailsProps {
closeModal: any; closeModal: any;
} }
export const isAnyAddressEditModalOpen = (uri: string | undefined): boolean =>
[
"edit-customer-addresses",
"edit-shipping-address",
"edit-billing-address",
].includes(uri);
export const OrderDraftDetails: React.FC<OrderDraftDetailsProps> = ({ export const OrderDraftDetails: React.FC<OrderDraftDetailsProps> = ({
id, id,
params, params,

View file

@ -31,7 +31,10 @@ import OrderFulfillStockExceededDialog from "@dashboard/orders/components/OrderF
import OrderInvoiceEmailSendDialog from "@dashboard/orders/components/OrderInvoiceEmailSendDialog"; import OrderInvoiceEmailSendDialog from "@dashboard/orders/components/OrderInvoiceEmailSendDialog";
import { OrderManualTransactionDialog } from "@dashboard/orders/components/OrderManualTransactionDialog"; import { OrderManualTransactionDialog } from "@dashboard/orders/components/OrderManualTransactionDialog";
import { OrderTransactionActionDialog } from "@dashboard/orders/components/OrderTransactionActionDialog/OrderTransactionActionDialog"; import { OrderTransactionActionDialog } from "@dashboard/orders/components/OrderTransactionActionDialog/OrderTransactionActionDialog";
import { transformFuflillmentLinesToStockFormsetData } from "@dashboard/orders/utils/data"; import {
isAnyAddressEditModalOpen,
transformFuflillmentLinesToStockFormsetData,
} from "@dashboard/orders/utils/data";
import { PartialMutationProviderOutput } from "@dashboard/types"; import { PartialMutationProviderOutput } from "@dashboard/types";
import { import {
CloseModalFunction, CloseModalFunction,
@ -59,7 +62,6 @@ import {
OrderUrlDialog, OrderUrlDialog,
OrderUrlQueryParams, OrderUrlQueryParams,
} from "../../../urls"; } from "../../../urls";
import { isAnyAddressEditModalOpen } from "../OrderDraftDetails";
interface OrderNormalDetailsProps { interface OrderNormalDetailsProps {
id: string; id: string;

View file

@ -23,6 +23,7 @@ import OrderFulfillmentApproveDialog from "@dashboard/orders/components/OrderFul
import OrderInvoiceEmailSendDialog from "@dashboard/orders/components/OrderInvoiceEmailSendDialog"; import OrderInvoiceEmailSendDialog from "@dashboard/orders/components/OrderInvoiceEmailSendDialog";
import { OrderManualTransactionDialog } from "@dashboard/orders/components/OrderManualTransactionDialog"; import { OrderManualTransactionDialog } from "@dashboard/orders/components/OrderManualTransactionDialog";
import { OrderTransactionActionDialog } from "@dashboard/orders/components/OrderTransactionActionDialog/OrderTransactionActionDialog"; import { OrderTransactionActionDialog } from "@dashboard/orders/components/OrderTransactionActionDialog/OrderTransactionActionDialog";
import { isAnyAddressEditModalOpen } from "@dashboard/orders/utils/data";
import { OrderDiscountProvider } from "@dashboard/products/components/OrderDiscountProviders/OrderDiscountProvider"; import { OrderDiscountProvider } from "@dashboard/products/components/OrderDiscountProviders/OrderDiscountProvider";
import { OrderLineDiscountProvider } from "@dashboard/products/components/OrderDiscountProviders/OrderLineDiscountProvider"; import { OrderLineDiscountProvider } from "@dashboard/products/components/OrderDiscountProviders/OrderLineDiscountProvider";
import { useOrderVariantSearch } from "@dashboard/searches/useOrderVariantSearch"; import { useOrderVariantSearch } from "@dashboard/searches/useOrderVariantSearch";
@ -55,7 +56,6 @@ import {
orderUrl, orderUrl,
OrderUrlQueryParams, OrderUrlQueryParams,
} from "../../../urls"; } from "../../../urls";
import { isAnyAddressEditModalOpen } from "../OrderDraftDetails";
interface OrderUnconfirmedDetailsProps { interface OrderUnconfirmedDetailsProps {
id: string; id: string;