@medusajs/draft-order 2.10.2-preview-20250905150153 → 2.10.2-preview-20250905180201

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9567,6 +9567,217 @@ const ID = () => {
9567
9567
  /* @__PURE__ */ jsx(Outlet, {})
9568
9568
  ] });
9569
9569
  };
9570
+ const BillingAddress = () => {
9571
+ const { id } = useParams();
9572
+ const { order, isPending, isError, error } = useOrder(id, {
9573
+ fields: "+billing_address"
9574
+ });
9575
+ if (isError) {
9576
+ throw error;
9577
+ }
9578
+ const isReady = !isPending && !!order;
9579
+ return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
9580
+ /* @__PURE__ */ jsxs(RouteDrawer.Header, { children: [
9581
+ /* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Edit Billing Address" }) }),
9582
+ /* @__PURE__ */ jsx(RouteDrawer.Description, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Edit the billing address for the draft order" }) })
9583
+ ] }),
9584
+ isReady && /* @__PURE__ */ jsx(BillingAddressForm, { order })
9585
+ ] });
9586
+ };
9587
+ const BillingAddressForm = ({ order }) => {
9588
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
9589
+ const form = useForm({
9590
+ defaultValues: {
9591
+ first_name: ((_a = order.billing_address) == null ? void 0 : _a.first_name) ?? "",
9592
+ last_name: ((_b = order.billing_address) == null ? void 0 : _b.last_name) ?? "",
9593
+ company: ((_c = order.billing_address) == null ? void 0 : _c.company) ?? "",
9594
+ address_1: ((_d = order.billing_address) == null ? void 0 : _d.address_1) ?? "",
9595
+ address_2: ((_e = order.billing_address) == null ? void 0 : _e.address_2) ?? "",
9596
+ city: ((_f = order.billing_address) == null ? void 0 : _f.city) ?? "",
9597
+ province: ((_g = order.billing_address) == null ? void 0 : _g.province) ?? "",
9598
+ country_code: ((_h = order.billing_address) == null ? void 0 : _h.country_code) ?? "",
9599
+ postal_code: ((_i = order.billing_address) == null ? void 0 : _i.postal_code) ?? "",
9600
+ phone: ((_j = order.billing_address) == null ? void 0 : _j.phone) ?? ""
9601
+ },
9602
+ resolver: zodResolver(schema$5)
9603
+ });
9604
+ const { mutateAsync, isPending } = useUpdateDraftOrder(order.id);
9605
+ const { handleSuccess } = useRouteModal();
9606
+ const onSubmit = form.handleSubmit(async (data) => {
9607
+ await mutateAsync(
9608
+ { billing_address: data },
9609
+ {
9610
+ onSuccess: () => {
9611
+ handleSuccess();
9612
+ },
9613
+ onError: (error) => {
9614
+ toast.error(error.message);
9615
+ }
9616
+ }
9617
+ );
9618
+ });
9619
+ return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(
9620
+ KeyboundForm,
9621
+ {
9622
+ className: "flex flex-1 flex-col overflow-hidden",
9623
+ onSubmit,
9624
+ children: [
9625
+ /* @__PURE__ */ jsx(RouteDrawer.Body, { className: "flex flex-col gap-y-6 overflow-y-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-4", children: [
9626
+ /* @__PURE__ */ jsx(
9627
+ Form$2.Field,
9628
+ {
9629
+ control: form.control,
9630
+ name: "country_code",
9631
+ render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
9632
+ /* @__PURE__ */ jsx(Form$2.Label, { children: "Country" }),
9633
+ /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(CountrySelect, { ...field }) }),
9634
+ /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
9635
+ ] })
9636
+ }
9637
+ ),
9638
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
9639
+ /* @__PURE__ */ jsx(
9640
+ Form$2.Field,
9641
+ {
9642
+ control: form.control,
9643
+ name: "first_name",
9644
+ render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
9645
+ /* @__PURE__ */ jsx(Form$2.Label, { children: "First name" }),
9646
+ /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
9647
+ /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
9648
+ ] })
9649
+ }
9650
+ ),
9651
+ /* @__PURE__ */ jsx(
9652
+ Form$2.Field,
9653
+ {
9654
+ control: form.control,
9655
+ name: "last_name",
9656
+ render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
9657
+ /* @__PURE__ */ jsx(Form$2.Label, { children: "Last name" }),
9658
+ /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
9659
+ /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
9660
+ ] })
9661
+ }
9662
+ )
9663
+ ] }),
9664
+ /* @__PURE__ */ jsx(
9665
+ Form$2.Field,
9666
+ {
9667
+ control: form.control,
9668
+ name: "company",
9669
+ render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
9670
+ /* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Company" }),
9671
+ /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
9672
+ /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
9673
+ ] })
9674
+ }
9675
+ ),
9676
+ /* @__PURE__ */ jsx(
9677
+ Form$2.Field,
9678
+ {
9679
+ control: form.control,
9680
+ name: "address_1",
9681
+ render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
9682
+ /* @__PURE__ */ jsx(Form$2.Label, { children: "Address" }),
9683
+ /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
9684
+ /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
9685
+ ] })
9686
+ }
9687
+ ),
9688
+ /* @__PURE__ */ jsx(
9689
+ Form$2.Field,
9690
+ {
9691
+ control: form.control,
9692
+ name: "address_2",
9693
+ render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
9694
+ /* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Apartment, suite, etc." }),
9695
+ /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
9696
+ /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
9697
+ ] })
9698
+ }
9699
+ ),
9700
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
9701
+ /* @__PURE__ */ jsx(
9702
+ Form$2.Field,
9703
+ {
9704
+ control: form.control,
9705
+ name: "postal_code",
9706
+ render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
9707
+ /* @__PURE__ */ jsx(Form$2.Label, { children: "Postal code" }),
9708
+ /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
9709
+ /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
9710
+ ] })
9711
+ }
9712
+ ),
9713
+ /* @__PURE__ */ jsx(
9714
+ Form$2.Field,
9715
+ {
9716
+ control: form.control,
9717
+ name: "city",
9718
+ render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
9719
+ /* @__PURE__ */ jsx(Form$2.Label, { children: "City" }),
9720
+ /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
9721
+ /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
9722
+ ] })
9723
+ }
9724
+ )
9725
+ ] }),
9726
+ /* @__PURE__ */ jsx(
9727
+ Form$2.Field,
9728
+ {
9729
+ control: form.control,
9730
+ name: "province",
9731
+ render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
9732
+ /* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Province / State" }),
9733
+ /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
9734
+ /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
9735
+ ] })
9736
+ }
9737
+ ),
9738
+ /* @__PURE__ */ jsx(
9739
+ Form$2.Field,
9740
+ {
9741
+ control: form.control,
9742
+ name: "phone",
9743
+ render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
9744
+ /* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Phone" }),
9745
+ /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
9746
+ /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
9747
+ ] })
9748
+ }
9749
+ )
9750
+ ] }) }),
9751
+ /* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
9752
+ /* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
9753
+ /* @__PURE__ */ jsx(Button, { size: "small", type: "submit", isLoading: isPending, children: "Save" })
9754
+ ] }) })
9755
+ ]
9756
+ }
9757
+ ) });
9758
+ };
9759
+ const schema$5 = addressSchema;
9760
+ const CustomItems = () => {
9761
+ return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
9762
+ /* @__PURE__ */ jsx(RouteDrawer.Header, { children: /* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Edit Custom Items" }) }) }),
9763
+ /* @__PURE__ */ jsx(CustomItemsForm, {})
9764
+ ] });
9765
+ };
9766
+ const CustomItemsForm = () => {
9767
+ const form = useForm({
9768
+ resolver: zodResolver(schema$4)
9769
+ });
9770
+ return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(KeyboundForm, { className: "flex flex-1 flex-col", children: [
9771
+ /* @__PURE__ */ jsx(RouteDrawer.Body, {}),
9772
+ /* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
9773
+ /* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
9774
+ /* @__PURE__ */ jsx(Button, { size: "small", type: "submit", children: "Save" })
9775
+ ] }) })
9776
+ ] }) });
9777
+ };
9778
+ const schema$4 = objectType({
9779
+ email: stringType().email()
9780
+ });
9570
9781
  const Email = () => {
9571
9782
  const { id } = useParams();
9572
9783
  const { order, isPending, isError, error } = useOrder(id, {
@@ -9589,7 +9800,7 @@ const EmailForm = ({ order }) => {
9589
9800
  defaultValues: {
9590
9801
  email: order.email ?? ""
9591
9802
  },
9592
- resolver: zodResolver(schema$5)
9803
+ resolver: zodResolver(schema$3)
9593
9804
  });
9594
9805
  const { mutateAsync, isPending } = useUpdateDraftOrder(order.id);
9595
9806
  const { handleSuccess } = useRouteModal();
@@ -9632,7 +9843,7 @@ const EmailForm = ({ order }) => {
9632
9843
  }
9633
9844
  ) });
9634
9845
  };
9635
- const schema$5 = objectType({
9846
+ const schema$3 = objectType({
9636
9847
  email: stringType().email()
9637
9848
  });
9638
9849
  const NumberInput = forwardRef(
@@ -11236,44 +11447,150 @@ function getPromotionIds(items, shippingMethods) {
11236
11447
  }
11237
11448
  return Array.from(promotionIds);
11238
11449
  }
11239
- const STACKED_FOCUS_MODAL_ID = "shipping-form";
11240
- const Shipping = () => {
11241
- var _a;
11450
+ const SalesChannel = () => {
11242
11451
  const { id } = useParams();
11243
- const { order, isPending, isError, error } = useOrder(id, {
11244
- fields: "+items.*,+items.variant.*,+items.variant.product.*,+items.variant.product.shipping_profile.*,+currency_code"
11245
- });
11246
- const {
11247
- order: preview,
11248
- isPending: isPreviewPending,
11249
- isError: isPreviewError,
11250
- error: previewError
11251
- } = useOrderPreview(id);
11252
- useInitiateOrderEdit({ preview });
11253
- const { onCancel } = useCancelOrderEdit({ preview });
11452
+ const { draft_order, isPending, isError, error } = useDraftOrder(
11453
+ id,
11454
+ {
11455
+ fields: "+sales_channel_id"
11456
+ },
11457
+ {
11458
+ enabled: !!id
11459
+ }
11460
+ );
11254
11461
  if (isError) {
11255
11462
  throw error;
11256
11463
  }
11257
- if (isPreviewError) {
11258
- throw previewError;
11259
- }
11260
- const orderHasItems = (((_a = order == null ? void 0 : order.items) == null ? void 0 : _a.length) || 0) > 0;
11261
- const isReady = preview && !isPreviewPending && order && !isPending;
11262
- return /* @__PURE__ */ jsx(RouteFocusModal, { onClose: onCancel, children: !orderHasItems ? /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col overflow-hidden ", children: [
11263
- /* @__PURE__ */ jsx(RouteFocusModal.Header, {}),
11264
- /* @__PURE__ */ jsx(RouteFocusModal.Body, { className: "flex flex-1 flex-col overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "flex flex-1 flex-col items-center overflow-y-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex w-full max-w-[720px] flex-col gap-y-6 py-16 px-6", children: [
11265
- /* @__PURE__ */ jsx(RouteFocusModal.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Shipping" }) }),
11266
- /* @__PURE__ */ jsx(RouteFocusModal.Description, { asChild: true, children: /* @__PURE__ */ jsx(Text, { size: "small", className: "text-ui-fg-subtle", children: "This draft order currently has no items. Add items to the order before adding shipping." }) })
11267
- ] }) }) }),
11268
- /* @__PURE__ */ jsx(RouteFocusModal.Footer, { children: /* @__PURE__ */ jsx(RouteFocusModal.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", type: "button", children: "Cancel" }) }) })
11269
- ] }) : isReady ? /* @__PURE__ */ jsx(ShippingForm, { preview, order }) : /* @__PURE__ */ jsxs("div", { children: [
11270
- /* @__PURE__ */ jsx(RouteFocusModal.Title, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Edit Shipping" }) }),
11271
- /* @__PURE__ */ jsx(RouteFocusModal.Description, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading data for the draft order, please wait..." }) })
11272
- ] }) });
11273
- };
11274
- const ShippingForm = ({ preview, order }) => {
11275
- var _a;
11276
- const { setIsOpen } = useStackedModal();
11464
+ const ISrEADY = !!draft_order && !isPending;
11465
+ return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
11466
+ /* @__PURE__ */ jsxs(RouteDrawer.Header, { children: [
11467
+ /* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Edit Sales Channel" }) }),
11468
+ /* @__PURE__ */ jsx(RouteDrawer.Description, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Update which sales channel the draft order is associated with" }) })
11469
+ ] }),
11470
+ ISrEADY && /* @__PURE__ */ jsx(SalesChannelForm, { order: draft_order })
11471
+ ] });
11472
+ };
11473
+ const SalesChannelForm = ({ order }) => {
11474
+ const form = useForm({
11475
+ defaultValues: {
11476
+ sales_channel_id: order.sales_channel_id || ""
11477
+ },
11478
+ resolver: zodResolver(schema$2)
11479
+ });
11480
+ const { mutateAsync, isPending } = useUpdateDraftOrder(order.id);
11481
+ const { handleSuccess } = useRouteModal();
11482
+ const onSubmit = form.handleSubmit(async (data) => {
11483
+ await mutateAsync(
11484
+ {
11485
+ sales_channel_id: data.sales_channel_id
11486
+ },
11487
+ {
11488
+ onSuccess: () => {
11489
+ toast.success("Sales channel updated");
11490
+ handleSuccess();
11491
+ },
11492
+ onError: (error) => {
11493
+ toast.error(error.message);
11494
+ }
11495
+ }
11496
+ );
11497
+ });
11498
+ return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(
11499
+ KeyboundForm,
11500
+ {
11501
+ className: "flex flex-1 flex-col overflow-hidden",
11502
+ onSubmit,
11503
+ children: [
11504
+ /* @__PURE__ */ jsx(RouteDrawer.Body, { className: "flex flex-col gap-y-6 overflow-y-auto", children: /* @__PURE__ */ jsx(SalesChannelField, { control: form.control, order }) }),
11505
+ /* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
11506
+ /* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
11507
+ /* @__PURE__ */ jsx(Button, { size: "small", type: "submit", isLoading: isPending, children: "Save" })
11508
+ ] }) })
11509
+ ]
11510
+ }
11511
+ ) });
11512
+ };
11513
+ const SalesChannelField = ({ control, order }) => {
11514
+ const salesChannels = useComboboxData({
11515
+ queryFn: async (params) => {
11516
+ return await sdk.admin.salesChannel.list(params);
11517
+ },
11518
+ queryKey: ["sales-channels"],
11519
+ getOptions: (data) => {
11520
+ return data.sales_channels.map((salesChannel) => ({
11521
+ label: salesChannel.name,
11522
+ value: salesChannel.id
11523
+ }));
11524
+ },
11525
+ defaultValue: order.sales_channel_id || void 0
11526
+ });
11527
+ return /* @__PURE__ */ jsx(
11528
+ Form$2.Field,
11529
+ {
11530
+ control,
11531
+ name: "sales_channel_id",
11532
+ render: ({ field }) => {
11533
+ return /* @__PURE__ */ jsxs(Form$2.Item, { children: [
11534
+ /* @__PURE__ */ jsx(Form$2.Label, { children: "Sales Channel" }),
11535
+ /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(
11536
+ Combobox,
11537
+ {
11538
+ options: salesChannels.options,
11539
+ fetchNextPage: salesChannels.fetchNextPage,
11540
+ isFetchingNextPage: salesChannels.isFetchingNextPage,
11541
+ searchValue: salesChannels.searchValue,
11542
+ onSearchValueChange: salesChannels.onSearchValueChange,
11543
+ placeholder: "Select sales channel",
11544
+ ...field
11545
+ }
11546
+ ) }),
11547
+ /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
11548
+ ] });
11549
+ }
11550
+ }
11551
+ );
11552
+ };
11553
+ const schema$2 = objectType({
11554
+ sales_channel_id: stringType().min(1)
11555
+ });
11556
+ const STACKED_FOCUS_MODAL_ID = "shipping-form";
11557
+ const Shipping = () => {
11558
+ var _a;
11559
+ const { id } = useParams();
11560
+ const { order, isPending, isError, error } = useOrder(id, {
11561
+ fields: "+items.*,+items.variant.*,+items.variant.product.*,+items.variant.product.shipping_profile.*,+currency_code"
11562
+ });
11563
+ const {
11564
+ order: preview,
11565
+ isPending: isPreviewPending,
11566
+ isError: isPreviewError,
11567
+ error: previewError
11568
+ } = useOrderPreview(id);
11569
+ useInitiateOrderEdit({ preview });
11570
+ const { onCancel } = useCancelOrderEdit({ preview });
11571
+ if (isError) {
11572
+ throw error;
11573
+ }
11574
+ if (isPreviewError) {
11575
+ throw previewError;
11576
+ }
11577
+ const orderHasItems = (((_a = order == null ? void 0 : order.items) == null ? void 0 : _a.length) || 0) > 0;
11578
+ const isReady = preview && !isPreviewPending && order && !isPending;
11579
+ return /* @__PURE__ */ jsx(RouteFocusModal, { onClose: onCancel, children: !orderHasItems ? /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col overflow-hidden ", children: [
11580
+ /* @__PURE__ */ jsx(RouteFocusModal.Header, {}),
11581
+ /* @__PURE__ */ jsx(RouteFocusModal.Body, { className: "flex flex-1 flex-col overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "flex flex-1 flex-col items-center overflow-y-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex w-full max-w-[720px] flex-col gap-y-6 py-16 px-6", children: [
11582
+ /* @__PURE__ */ jsx(RouteFocusModal.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Shipping" }) }),
11583
+ /* @__PURE__ */ jsx(RouteFocusModal.Description, { asChild: true, children: /* @__PURE__ */ jsx(Text, { size: "small", className: "text-ui-fg-subtle", children: "This draft order currently has no items. Add items to the order before adding shipping." }) })
11584
+ ] }) }) }),
11585
+ /* @__PURE__ */ jsx(RouteFocusModal.Footer, { children: /* @__PURE__ */ jsx(RouteFocusModal.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", type: "button", children: "Cancel" }) }) })
11586
+ ] }) : isReady ? /* @__PURE__ */ jsx(ShippingForm, { preview, order }) : /* @__PURE__ */ jsxs("div", { children: [
11587
+ /* @__PURE__ */ jsx(RouteFocusModal.Title, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Edit Shipping" }) }),
11588
+ /* @__PURE__ */ jsx(RouteFocusModal.Description, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading data for the draft order, please wait..." }) })
11589
+ ] }) });
11590
+ };
11591
+ const ShippingForm = ({ preview, order }) => {
11592
+ var _a;
11593
+ const { setIsOpen } = useStackedModal();
11277
11594
  const [isSubmitting, setIsSubmitting] = useState(false);
11278
11595
  const [data, setData] = useState(null);
11279
11596
  const appliedShippingOptionIds = (_a = preview.shipping_methods) == null ? void 0 : _a.map((method) => method.shipping_option_id).filter(Boolean);
@@ -12043,112 +12360,6 @@ const CustomAmountField = ({
12043
12360
  }
12044
12361
  );
12045
12362
  };
12046
- const SalesChannel = () => {
12047
- const { id } = useParams();
12048
- const { draft_order, isPending, isError, error } = useDraftOrder(
12049
- id,
12050
- {
12051
- fields: "+sales_channel_id"
12052
- },
12053
- {
12054
- enabled: !!id
12055
- }
12056
- );
12057
- if (isError) {
12058
- throw error;
12059
- }
12060
- const ISrEADY = !!draft_order && !isPending;
12061
- return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
12062
- /* @__PURE__ */ jsxs(RouteDrawer.Header, { children: [
12063
- /* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Edit Sales Channel" }) }),
12064
- /* @__PURE__ */ jsx(RouteDrawer.Description, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Update which sales channel the draft order is associated with" }) })
12065
- ] }),
12066
- ISrEADY && /* @__PURE__ */ jsx(SalesChannelForm, { order: draft_order })
12067
- ] });
12068
- };
12069
- const SalesChannelForm = ({ order }) => {
12070
- const form = useForm({
12071
- defaultValues: {
12072
- sales_channel_id: order.sales_channel_id || ""
12073
- },
12074
- resolver: zodResolver(schema$4)
12075
- });
12076
- const { mutateAsync, isPending } = useUpdateDraftOrder(order.id);
12077
- const { handleSuccess } = useRouteModal();
12078
- const onSubmit = form.handleSubmit(async (data) => {
12079
- await mutateAsync(
12080
- {
12081
- sales_channel_id: data.sales_channel_id
12082
- },
12083
- {
12084
- onSuccess: () => {
12085
- toast.success("Sales channel updated");
12086
- handleSuccess();
12087
- },
12088
- onError: (error) => {
12089
- toast.error(error.message);
12090
- }
12091
- }
12092
- );
12093
- });
12094
- return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(
12095
- KeyboundForm,
12096
- {
12097
- className: "flex flex-1 flex-col overflow-hidden",
12098
- onSubmit,
12099
- children: [
12100
- /* @__PURE__ */ jsx(RouteDrawer.Body, { className: "flex flex-col gap-y-6 overflow-y-auto", children: /* @__PURE__ */ jsx(SalesChannelField, { control: form.control, order }) }),
12101
- /* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
12102
- /* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
12103
- /* @__PURE__ */ jsx(Button, { size: "small", type: "submit", isLoading: isPending, children: "Save" })
12104
- ] }) })
12105
- ]
12106
- }
12107
- ) });
12108
- };
12109
- const SalesChannelField = ({ control, order }) => {
12110
- const salesChannels = useComboboxData({
12111
- queryFn: async (params) => {
12112
- return await sdk.admin.salesChannel.list(params);
12113
- },
12114
- queryKey: ["sales-channels"],
12115
- getOptions: (data) => {
12116
- return data.sales_channels.map((salesChannel) => ({
12117
- label: salesChannel.name,
12118
- value: salesChannel.id
12119
- }));
12120
- },
12121
- defaultValue: order.sales_channel_id || void 0
12122
- });
12123
- return /* @__PURE__ */ jsx(
12124
- Form$2.Field,
12125
- {
12126
- control,
12127
- name: "sales_channel_id",
12128
- render: ({ field }) => {
12129
- return /* @__PURE__ */ jsxs(Form$2.Item, { children: [
12130
- /* @__PURE__ */ jsx(Form$2.Label, { children: "Sales Channel" }),
12131
- /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(
12132
- Combobox,
12133
- {
12134
- options: salesChannels.options,
12135
- fetchNextPage: salesChannels.fetchNextPage,
12136
- isFetchingNextPage: salesChannels.isFetchingNextPage,
12137
- searchValue: salesChannels.searchValue,
12138
- onSearchValueChange: salesChannels.onSearchValueChange,
12139
- placeholder: "Select sales channel",
12140
- ...field
12141
- }
12142
- ) }),
12143
- /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
12144
- ] });
12145
- }
12146
- }
12147
- );
12148
- };
12149
- const schema$4 = objectType({
12150
- sales_channel_id: stringType().min(1)
12151
- });
12152
12363
  const ShippingAddress = () => {
12153
12364
  const { id } = useParams();
12154
12365
  const { order, isPending, isError, error } = useOrder(id, {
@@ -12181,7 +12392,7 @@ const ShippingAddressForm = ({ order }) => {
12181
12392
  postal_code: ((_i = order.shipping_address) == null ? void 0 : _i.postal_code) ?? "",
12182
12393
  phone: ((_j = order.shipping_address) == null ? void 0 : _j.phone) ?? ""
12183
12394
  },
12184
- resolver: zodResolver(schema$3)
12395
+ resolver: zodResolver(schema$1)
12185
12396
  });
12186
12397
  const { mutateAsync, isPending } = useUpdateDraftOrder(order.id);
12187
12398
  const { handleSuccess } = useRouteModal();
@@ -12351,7 +12562,7 @@ const ShippingAddressForm = ({ order }) => {
12351
12562
  }
12352
12563
  ) });
12353
12564
  };
12354
- const schema$3 = addressSchema;
12565
+ const schema$1 = addressSchema;
12355
12566
  const TransferOwnership = () => {
12356
12567
  const { id } = useParams();
12357
12568
  const { draft_order, isPending, isError, error } = useDraftOrder(id, {
@@ -12375,7 +12586,7 @@ const TransferOwnershipForm = ({ order }) => {
12375
12586
  defaultValues: {
12376
12587
  customer_id: order.customer_id || ""
12377
12588
  },
12378
- resolver: zodResolver(schema$2)
12589
+ resolver: zodResolver(schema)
12379
12590
  });
12380
12591
  const { mutateAsync, isPending } = useUpdateDraftOrder(order.id);
12381
12592
  const { handleSuccess } = useRouteModal();
@@ -12825,219 +13036,8 @@ const Illustration = () => {
12825
13036
  }
12826
13037
  );
12827
13038
  };
12828
- const schema$2 = objectType({
12829
- customer_id: stringType().min(1)
12830
- });
12831
- const BillingAddress = () => {
12832
- const { id } = useParams();
12833
- const { order, isPending, isError, error } = useOrder(id, {
12834
- fields: "+billing_address"
12835
- });
12836
- if (isError) {
12837
- throw error;
12838
- }
12839
- const isReady = !isPending && !!order;
12840
- return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
12841
- /* @__PURE__ */ jsxs(RouteDrawer.Header, { children: [
12842
- /* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Edit Billing Address" }) }),
12843
- /* @__PURE__ */ jsx(RouteDrawer.Description, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Edit the billing address for the draft order" }) })
12844
- ] }),
12845
- isReady && /* @__PURE__ */ jsx(BillingAddressForm, { order })
12846
- ] });
12847
- };
12848
- const BillingAddressForm = ({ order }) => {
12849
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
12850
- const form = useForm({
12851
- defaultValues: {
12852
- first_name: ((_a = order.billing_address) == null ? void 0 : _a.first_name) ?? "",
12853
- last_name: ((_b = order.billing_address) == null ? void 0 : _b.last_name) ?? "",
12854
- company: ((_c = order.billing_address) == null ? void 0 : _c.company) ?? "",
12855
- address_1: ((_d = order.billing_address) == null ? void 0 : _d.address_1) ?? "",
12856
- address_2: ((_e = order.billing_address) == null ? void 0 : _e.address_2) ?? "",
12857
- city: ((_f = order.billing_address) == null ? void 0 : _f.city) ?? "",
12858
- province: ((_g = order.billing_address) == null ? void 0 : _g.province) ?? "",
12859
- country_code: ((_h = order.billing_address) == null ? void 0 : _h.country_code) ?? "",
12860
- postal_code: ((_i = order.billing_address) == null ? void 0 : _i.postal_code) ?? "",
12861
- phone: ((_j = order.billing_address) == null ? void 0 : _j.phone) ?? ""
12862
- },
12863
- resolver: zodResolver(schema$1)
12864
- });
12865
- const { mutateAsync, isPending } = useUpdateDraftOrder(order.id);
12866
- const { handleSuccess } = useRouteModal();
12867
- const onSubmit = form.handleSubmit(async (data) => {
12868
- await mutateAsync(
12869
- { billing_address: data },
12870
- {
12871
- onSuccess: () => {
12872
- handleSuccess();
12873
- },
12874
- onError: (error) => {
12875
- toast.error(error.message);
12876
- }
12877
- }
12878
- );
12879
- });
12880
- return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(
12881
- KeyboundForm,
12882
- {
12883
- className: "flex flex-1 flex-col overflow-hidden",
12884
- onSubmit,
12885
- children: [
12886
- /* @__PURE__ */ jsx(RouteDrawer.Body, { className: "flex flex-col gap-y-6 overflow-y-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-4", children: [
12887
- /* @__PURE__ */ jsx(
12888
- Form$2.Field,
12889
- {
12890
- control: form.control,
12891
- name: "country_code",
12892
- render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
12893
- /* @__PURE__ */ jsx(Form$2.Label, { children: "Country" }),
12894
- /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(CountrySelect, { ...field }) }),
12895
- /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
12896
- ] })
12897
- }
12898
- ),
12899
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
12900
- /* @__PURE__ */ jsx(
12901
- Form$2.Field,
12902
- {
12903
- control: form.control,
12904
- name: "first_name",
12905
- render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
12906
- /* @__PURE__ */ jsx(Form$2.Label, { children: "First name" }),
12907
- /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
12908
- /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
12909
- ] })
12910
- }
12911
- ),
12912
- /* @__PURE__ */ jsx(
12913
- Form$2.Field,
12914
- {
12915
- control: form.control,
12916
- name: "last_name",
12917
- render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
12918
- /* @__PURE__ */ jsx(Form$2.Label, { children: "Last name" }),
12919
- /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
12920
- /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
12921
- ] })
12922
- }
12923
- )
12924
- ] }),
12925
- /* @__PURE__ */ jsx(
12926
- Form$2.Field,
12927
- {
12928
- control: form.control,
12929
- name: "company",
12930
- render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
12931
- /* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Company" }),
12932
- /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
12933
- /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
12934
- ] })
12935
- }
12936
- ),
12937
- /* @__PURE__ */ jsx(
12938
- Form$2.Field,
12939
- {
12940
- control: form.control,
12941
- name: "address_1",
12942
- render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
12943
- /* @__PURE__ */ jsx(Form$2.Label, { children: "Address" }),
12944
- /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
12945
- /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
12946
- ] })
12947
- }
12948
- ),
12949
- /* @__PURE__ */ jsx(
12950
- Form$2.Field,
12951
- {
12952
- control: form.control,
12953
- name: "address_2",
12954
- render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
12955
- /* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Apartment, suite, etc." }),
12956
- /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
12957
- /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
12958
- ] })
12959
- }
12960
- ),
12961
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
12962
- /* @__PURE__ */ jsx(
12963
- Form$2.Field,
12964
- {
12965
- control: form.control,
12966
- name: "postal_code",
12967
- render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
12968
- /* @__PURE__ */ jsx(Form$2.Label, { children: "Postal code" }),
12969
- /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
12970
- /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
12971
- ] })
12972
- }
12973
- ),
12974
- /* @__PURE__ */ jsx(
12975
- Form$2.Field,
12976
- {
12977
- control: form.control,
12978
- name: "city",
12979
- render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
12980
- /* @__PURE__ */ jsx(Form$2.Label, { children: "City" }),
12981
- /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
12982
- /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
12983
- ] })
12984
- }
12985
- )
12986
- ] }),
12987
- /* @__PURE__ */ jsx(
12988
- Form$2.Field,
12989
- {
12990
- control: form.control,
12991
- name: "province",
12992
- render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
12993
- /* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Province / State" }),
12994
- /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
12995
- /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
12996
- ] })
12997
- }
12998
- ),
12999
- /* @__PURE__ */ jsx(
13000
- Form$2.Field,
13001
- {
13002
- control: form.control,
13003
- name: "phone",
13004
- render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
13005
- /* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Phone" }),
13006
- /* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
13007
- /* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
13008
- ] })
13009
- }
13010
- )
13011
- ] }) }),
13012
- /* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
13013
- /* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
13014
- /* @__PURE__ */ jsx(Button, { size: "small", type: "submit", isLoading: isPending, children: "Save" })
13015
- ] }) })
13016
- ]
13017
- }
13018
- ) });
13019
- };
13020
- const schema$1 = addressSchema;
13021
- const CustomItems = () => {
13022
- return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
13023
- /* @__PURE__ */ jsx(RouteDrawer.Header, { children: /* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Edit Custom Items" }) }) }),
13024
- /* @__PURE__ */ jsx(CustomItemsForm, {})
13025
- ] });
13026
- };
13027
- const CustomItemsForm = () => {
13028
- const form = useForm({
13029
- resolver: zodResolver(schema)
13030
- });
13031
- return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(KeyboundForm, { className: "flex flex-1 flex-col", children: [
13032
- /* @__PURE__ */ jsx(RouteDrawer.Body, {}),
13033
- /* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
13034
- /* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
13035
- /* @__PURE__ */ jsx(Button, { size: "small", type: "submit", children: "Save" })
13036
- ] }) })
13037
- ] }) });
13038
- };
13039
13039
  const schema = objectType({
13040
- email: stringType().email()
13040
+ customer_id: stringType().min(1)
13041
13041
  });
13042
13042
  const widgetModule = { widgets: [] };
13043
13043
  const routeModule = {
@@ -13059,6 +13059,14 @@ const routeModule = {
13059
13059
  handle,
13060
13060
  loader,
13061
13061
  children: [
13062
+ {
13063
+ Component: BillingAddress,
13064
+ path: "/draft-orders/:id/billing-address"
13065
+ },
13066
+ {
13067
+ Component: CustomItems,
13068
+ path: "/draft-orders/:id/custom-items"
13069
+ },
13062
13070
  {
13063
13071
  Component: Email,
13064
13072
  path: "/draft-orders/:id/email"
@@ -13075,14 +13083,14 @@ const routeModule = {
13075
13083
  Component: Promotions,
13076
13084
  path: "/draft-orders/:id/promotions"
13077
13085
  },
13078
- {
13079
- Component: Shipping,
13080
- path: "/draft-orders/:id/shipping"
13081
- },
13082
13086
  {
13083
13087
  Component: SalesChannel,
13084
13088
  path: "/draft-orders/:id/sales-channel"
13085
13089
  },
13090
+ {
13091
+ Component: Shipping,
13092
+ path: "/draft-orders/:id/shipping"
13093
+ },
13086
13094
  {
13087
13095
  Component: ShippingAddress,
13088
13096
  path: "/draft-orders/:id/shipping-address"
@@ -13090,14 +13098,6 @@ const routeModule = {
13090
13098
  {
13091
13099
  Component: TransferOwnership,
13092
13100
  path: "/draft-orders/:id/transfer-ownership"
13093
- },
13094
- {
13095
- Component: BillingAddress,
13096
- path: "/draft-orders/:id/billing-address"
13097
- },
13098
- {
13099
- Component: CustomItems,
13100
- path: "/draft-orders/:id/custom-items"
13101
13101
  }
13102
13102
  ]
13103
13103
  }