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:
parent
7a5b919ae4
commit
cdd733423b
5 changed files with 17 additions and 11 deletions
|
@ -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>
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue