@medusajs/draft-order 2.10.4-preview-20250926150202 → 2.10.4-preview-20250926210156
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.
- package/.medusa/server/src/admin/index.js +656 -656
- package/.medusa/server/src/admin/index.mjs +656 -656
- package/package.json +16 -16
|
@@ -9567,27 +9567,6 @@ const ID = () => {
|
|
|
9567
9567
|
/* @__PURE__ */ jsx(Outlet, {})
|
|
9568
9568
|
] });
|
|
9569
9569
|
};
|
|
9570
|
-
const CustomItems = () => {
|
|
9571
|
-
return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
|
|
9572
|
-
/* @__PURE__ */ jsx(RouteDrawer.Header, { children: /* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Edit Custom Items" }) }) }),
|
|
9573
|
-
/* @__PURE__ */ jsx(CustomItemsForm, {})
|
|
9574
|
-
] });
|
|
9575
|
-
};
|
|
9576
|
-
const CustomItemsForm = () => {
|
|
9577
|
-
const form = useForm({
|
|
9578
|
-
resolver: zodResolver(schema$5)
|
|
9579
|
-
});
|
|
9580
|
-
return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(KeyboundForm, { className: "flex flex-1 flex-col", children: [
|
|
9581
|
-
/* @__PURE__ */ jsx(RouteDrawer.Body, {}),
|
|
9582
|
-
/* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
|
|
9583
|
-
/* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
|
|
9584
|
-
/* @__PURE__ */ jsx(Button, { size: "small", type: "submit", children: "Save" })
|
|
9585
|
-
] }) })
|
|
9586
|
-
] }) });
|
|
9587
|
-
};
|
|
9588
|
-
const schema$5 = objectType({
|
|
9589
|
-
email: stringType().email()
|
|
9590
|
-
});
|
|
9591
9570
|
const BillingAddress = () => {
|
|
9592
9571
|
const { id } = useParams();
|
|
9593
9572
|
const { order, isPending, isError, error } = useOrder(id, {
|
|
@@ -9620,7 +9599,7 @@ const BillingAddressForm = ({ order }) => {
|
|
|
9620
9599
|
postal_code: ((_i = order.billing_address) == null ? void 0 : _i.postal_code) ?? "",
|
|
9621
9600
|
phone: ((_j = order.billing_address) == null ? void 0 : _j.phone) ?? ""
|
|
9622
9601
|
},
|
|
9623
|
-
resolver: zodResolver(schema$
|
|
9602
|
+
resolver: zodResolver(schema$5)
|
|
9624
9603
|
});
|
|
9625
9604
|
const { mutateAsync, isPending } = useUpdateDraftOrder(order.id);
|
|
9626
9605
|
const { handleSuccess } = useRouteModal();
|
|
@@ -9777,7 +9756,28 @@ const BillingAddressForm = ({ order }) => {
|
|
|
9777
9756
|
}
|
|
9778
9757
|
) });
|
|
9779
9758
|
};
|
|
9780
|
-
const schema$
|
|
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
|
+
});
|
|
9781
9781
|
const Email = () => {
|
|
9782
9782
|
const { id } = useParams();
|
|
9783
9783
|
const { order, isPending, isError, error } = useOrder(id, {
|
|
@@ -10820,392 +10820,115 @@ const customItemSchema = objectType({
|
|
|
10820
10820
|
quantity: numberType(),
|
|
10821
10821
|
unit_price: unionType([numberType(), stringType()])
|
|
10822
10822
|
});
|
|
10823
|
-
const
|
|
10824
|
-
|
|
10825
|
-
|
|
10826
|
-
|
|
10827
|
-
|
|
10828
|
-
|
|
10829
|
-
|
|
10830
|
-
|
|
10831
|
-
|
|
10832
|
-
|
|
10833
|
-
|
|
10834
|
-
|
|
10835
|
-
|
|
10836
|
-
|
|
10837
|
-
|
|
10838
|
-
|
|
10839
|
-
|
|
10840
|
-
|
|
10841
|
-
|
|
10842
|
-
}
|
|
10843
|
-
|
|
10823
|
+
const InlineTip = forwardRef(
|
|
10824
|
+
({ variant = "tip", label, className, children, ...props }, ref) => {
|
|
10825
|
+
const labelValue = label || (variant === "warning" ? "Warning" : "Tip");
|
|
10826
|
+
return /* @__PURE__ */ jsxs(
|
|
10827
|
+
"div",
|
|
10828
|
+
{
|
|
10829
|
+
ref,
|
|
10830
|
+
className: clx(
|
|
10831
|
+
"bg-ui-bg-component txt-small text-ui-fg-subtle grid grid-cols-[4px_1fr] items-start gap-3 rounded-lg border p-3",
|
|
10832
|
+
className
|
|
10833
|
+
),
|
|
10834
|
+
...props,
|
|
10835
|
+
children: [
|
|
10836
|
+
/* @__PURE__ */ jsx(
|
|
10837
|
+
"div",
|
|
10838
|
+
{
|
|
10839
|
+
role: "presentation",
|
|
10840
|
+
className: clx("w-4px bg-ui-tag-neutral-icon h-full rounded-full", {
|
|
10841
|
+
"bg-ui-tag-orange-icon": variant === "warning"
|
|
10842
|
+
})
|
|
10843
|
+
}
|
|
10844
|
+
),
|
|
10845
|
+
/* @__PURE__ */ jsxs("div", { className: "text-pretty", children: [
|
|
10846
|
+
/* @__PURE__ */ jsxs("strong", { className: "txt-small-plus text-ui-fg-base", children: [
|
|
10847
|
+
labelValue,
|
|
10848
|
+
":"
|
|
10849
|
+
] }),
|
|
10850
|
+
" ",
|
|
10851
|
+
children
|
|
10852
|
+
] })
|
|
10853
|
+
]
|
|
10854
|
+
}
|
|
10855
|
+
);
|
|
10856
|
+
}
|
|
10857
|
+
);
|
|
10858
|
+
InlineTip.displayName = "InlineTip";
|
|
10859
|
+
const MetadataFieldSchema = objectType({
|
|
10860
|
+
key: stringType(),
|
|
10861
|
+
disabled: booleanType().optional(),
|
|
10862
|
+
value: anyType()
|
|
10863
|
+
});
|
|
10864
|
+
const MetadataSchema = objectType({
|
|
10865
|
+
metadata: arrayType(MetadataFieldSchema)
|
|
10866
|
+
});
|
|
10867
|
+
const Metadata = () => {
|
|
10844
10868
|
const { id } = useParams();
|
|
10845
|
-
const {
|
|
10846
|
-
|
|
10847
|
-
|
|
10848
|
-
|
|
10849
|
-
|
|
10850
|
-
useInitiateOrderEdit({ preview });
|
|
10851
|
-
const { onCancel } = useCancelOrderEdit({ preview });
|
|
10852
|
-
if (isPreviewError) {
|
|
10853
|
-
throw previewError;
|
|
10869
|
+
const { order, isPending, isError, error } = useOrder(id, {
|
|
10870
|
+
fields: "metadata"
|
|
10871
|
+
});
|
|
10872
|
+
if (isError) {
|
|
10873
|
+
throw error;
|
|
10854
10874
|
}
|
|
10855
|
-
const isReady = !!
|
|
10856
|
-
return /* @__PURE__ */ jsxs(RouteDrawer, {
|
|
10857
|
-
/* @__PURE__ */
|
|
10858
|
-
|
|
10875
|
+
const isReady = !isPending && !!order;
|
|
10876
|
+
return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
|
|
10877
|
+
/* @__PURE__ */ jsxs(RouteDrawer.Header, { children: [
|
|
10878
|
+
/* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Metadata" }) }),
|
|
10879
|
+
/* @__PURE__ */ jsx(RouteDrawer.Description, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Add metadata to the draft order." }) })
|
|
10880
|
+
] }),
|
|
10881
|
+
!isReady ? /* @__PURE__ */ jsx(PlaceholderInner, {}) : /* @__PURE__ */ jsx(MetadataForm, { orderId: id, metadata: order == null ? void 0 : order.metadata })
|
|
10859
10882
|
] });
|
|
10860
10883
|
};
|
|
10861
|
-
const
|
|
10862
|
-
|
|
10863
|
-
|
|
10864
|
-
const [comboboxValue, setComboboxValue] = useState("");
|
|
10884
|
+
const METADATA_KEY_LABEL_ID = "metadata-form-key-label";
|
|
10885
|
+
const METADATA_VALUE_LABEL_ID = "metadata-form-value-label";
|
|
10886
|
+
const MetadataForm = ({ orderId, metadata }) => {
|
|
10865
10887
|
const { handleSuccess } = useRouteModal();
|
|
10866
|
-
const
|
|
10867
|
-
const
|
|
10868
|
-
const
|
|
10869
|
-
{
|
|
10870
|
-
|
|
10871
|
-
},
|
|
10872
|
-
{
|
|
10873
|
-
enabled: !!promoIds.length
|
|
10874
|
-
}
|
|
10875
|
-
);
|
|
10876
|
-
const comboboxData = useComboboxData({
|
|
10877
|
-
queryKey: ["promotions", "combobox", promoIds],
|
|
10878
|
-
queryFn: async (params) => {
|
|
10879
|
-
return await sdk.admin.promotion.list({
|
|
10880
|
-
...params,
|
|
10881
|
-
id: {
|
|
10882
|
-
$nin: promoIds
|
|
10883
|
-
}
|
|
10884
|
-
});
|
|
10888
|
+
const hasUneditableRows = getHasUneditableRows(metadata);
|
|
10889
|
+
const { mutateAsync, isPending } = useUpdateDraftOrder(orderId);
|
|
10890
|
+
const form = useForm({
|
|
10891
|
+
defaultValues: {
|
|
10892
|
+
metadata: getDefaultValues(metadata)
|
|
10885
10893
|
},
|
|
10886
|
-
|
|
10887
|
-
return data.promotions.map((promotion) => ({
|
|
10888
|
-
label: promotion.code,
|
|
10889
|
-
value: promotion.code
|
|
10890
|
-
}));
|
|
10891
|
-
}
|
|
10894
|
+
resolver: zodResolver(MetadataSchema)
|
|
10892
10895
|
});
|
|
10893
|
-
const
|
|
10894
|
-
|
|
10895
|
-
|
|
10896
|
-
}
|
|
10897
|
-
addPromotions(
|
|
10896
|
+
const handleSubmit = form.handleSubmit(async (data) => {
|
|
10897
|
+
const parsedData = parseValues(data);
|
|
10898
|
+
await mutateAsync(
|
|
10898
10899
|
{
|
|
10899
|
-
|
|
10900
|
+
metadata: parsedData
|
|
10900
10901
|
},
|
|
10901
10902
|
{
|
|
10902
|
-
onError: (e) => {
|
|
10903
|
-
toast.error(e.message);
|
|
10904
|
-
comboboxData.onSearchValueChange("");
|
|
10905
|
-
setComboboxValue("");
|
|
10906
|
-
},
|
|
10907
10903
|
onSuccess: () => {
|
|
10908
|
-
|
|
10909
|
-
|
|
10904
|
+
toast.success("Metadata updated");
|
|
10905
|
+
handleSuccess();
|
|
10906
|
+
},
|
|
10907
|
+
onError: (error) => {
|
|
10908
|
+
toast.error(error.message);
|
|
10910
10909
|
}
|
|
10911
10910
|
}
|
|
10912
10911
|
);
|
|
10913
|
-
};
|
|
10914
|
-
const {
|
|
10915
|
-
|
|
10916
|
-
|
|
10917
|
-
|
|
10918
|
-
|
|
10919
|
-
|
|
10920
|
-
|
|
10921
|
-
|
|
10922
|
-
|
|
10923
|
-
|
|
10924
|
-
|
|
10925
|
-
}
|
|
10926
|
-
});
|
|
10927
|
-
if (!requestSucceeded) {
|
|
10928
|
-
setIsSubmitting(false);
|
|
10929
|
-
return;
|
|
10912
|
+
});
|
|
10913
|
+
const { fields, insert, remove } = useFieldArray({
|
|
10914
|
+
control: form.control,
|
|
10915
|
+
name: "metadata"
|
|
10916
|
+
});
|
|
10917
|
+
function deleteRow(index) {
|
|
10918
|
+
remove(index);
|
|
10919
|
+
if (fields.length === 1) {
|
|
10920
|
+
insert(0, {
|
|
10921
|
+
key: "",
|
|
10922
|
+
value: "",
|
|
10923
|
+
disabled: false
|
|
10924
|
+
});
|
|
10930
10925
|
}
|
|
10931
|
-
|
|
10932
|
-
|
|
10933
|
-
|
|
10934
|
-
|
|
10935
|
-
|
|
10936
|
-
|
|
10937
|
-
},
|
|
10938
|
-
onSettled: () => {
|
|
10939
|
-
setIsSubmitting(false);
|
|
10940
|
-
}
|
|
10941
|
-
});
|
|
10942
|
-
};
|
|
10943
|
-
if (isError) {
|
|
10944
|
-
throw error;
|
|
10945
|
-
}
|
|
10946
|
-
return /* @__PURE__ */ jsxs(KeyboundForm, { className: "flex flex-1 flex-col", onSubmit, children: [
|
|
10947
|
-
/* @__PURE__ */ jsx(RouteDrawer.Body, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
10948
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", children: [
|
|
10949
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
10950
|
-
/* @__PURE__ */ jsx(Label$1, { size: "small", weight: "plus", htmlFor: "promotion-combobox", children: "Apply promotions" }),
|
|
10951
|
-
/* @__PURE__ */ jsx(Hint$1, { id: "promotion-combobox-hint", children: "Manage promotions that should be applied to the order." })
|
|
10952
|
-
] }),
|
|
10953
|
-
/* @__PURE__ */ jsx(
|
|
10954
|
-
Combobox,
|
|
10955
|
-
{
|
|
10956
|
-
id: "promotion-combobox",
|
|
10957
|
-
"aria-describedby": "promotion-combobox-hint",
|
|
10958
|
-
isFetchingNextPage: comboboxData.isFetchingNextPage,
|
|
10959
|
-
fetchNextPage: comboboxData.fetchNextPage,
|
|
10960
|
-
options: comboboxData.options,
|
|
10961
|
-
onSearchValueChange: comboboxData.onSearchValueChange,
|
|
10962
|
-
searchValue: comboboxData.searchValue,
|
|
10963
|
-
disabled: comboboxData.disabled || isAddingPromotions,
|
|
10964
|
-
onChange: add,
|
|
10965
|
-
value: comboboxValue
|
|
10966
|
-
}
|
|
10967
|
-
)
|
|
10968
|
-
] }),
|
|
10969
|
-
/* @__PURE__ */ jsx(Divider, { variant: "dashed" }),
|
|
10970
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2", children: promotions == null ? void 0 : promotions.map((promotion) => /* @__PURE__ */ jsx(
|
|
10971
|
-
PromotionItem,
|
|
10972
|
-
{
|
|
10973
|
-
promotion,
|
|
10974
|
-
orderId: preview.id,
|
|
10975
|
-
isLoading: isPending
|
|
10976
|
-
},
|
|
10977
|
-
promotion.id
|
|
10978
|
-
)) })
|
|
10979
|
-
] }) }),
|
|
10980
|
-
/* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
|
|
10981
|
-
/* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
|
|
10982
|
-
/* @__PURE__ */ jsx(
|
|
10983
|
-
Button,
|
|
10984
|
-
{
|
|
10985
|
-
size: "small",
|
|
10986
|
-
type: "submit",
|
|
10987
|
-
isLoading: isSubmitting || isAddingPromotions,
|
|
10988
|
-
children: "Save"
|
|
10989
|
-
}
|
|
10990
|
-
)
|
|
10991
|
-
] }) })
|
|
10992
|
-
] });
|
|
10993
|
-
};
|
|
10994
|
-
const PromotionItem = ({
|
|
10995
|
-
promotion,
|
|
10996
|
-
orderId,
|
|
10997
|
-
isLoading
|
|
10998
|
-
}) => {
|
|
10999
|
-
var _a;
|
|
11000
|
-
const { mutateAsync: removePromotions, isPending } = useDraftOrderRemovePromotions(orderId);
|
|
11001
|
-
const onRemove = async () => {
|
|
11002
|
-
removePromotions(
|
|
11003
|
-
{
|
|
11004
|
-
promo_codes: [promotion.code]
|
|
11005
|
-
},
|
|
11006
|
-
{
|
|
11007
|
-
onError: (e) => {
|
|
11008
|
-
toast.error(e.message);
|
|
11009
|
-
}
|
|
11010
|
-
}
|
|
11011
|
-
);
|
|
11012
|
-
};
|
|
11013
|
-
const displayValue = getDisplayValue(promotion);
|
|
11014
|
-
return /* @__PURE__ */ jsxs(
|
|
11015
|
-
"div",
|
|
11016
|
-
{
|
|
11017
|
-
className: clx(
|
|
11018
|
-
"bg-ui-bg-component shadow-elevation-card-rest flex items-center justify-between rounded-lg px-3 py-2",
|
|
11019
|
-
{
|
|
11020
|
-
"animate-pulse": isLoading
|
|
11021
|
-
}
|
|
11022
|
-
),
|
|
11023
|
-
children: [
|
|
11024
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
11025
|
-
/* @__PURE__ */ jsx(Text, { size: "small", weight: "plus", leading: "compact", children: promotion.code }),
|
|
11026
|
-
/* @__PURE__ */ jsxs("div", { className: "text-ui-fg-subtle flex items-center gap-1.5", children: [
|
|
11027
|
-
displayValue && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
11028
|
-
/* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", children: displayValue }),
|
|
11029
|
-
/* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", children: "·" })
|
|
11030
|
-
] }),
|
|
11031
|
-
/* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", className: "capitalize", children: (_a = promotion.application_method) == null ? void 0 : _a.allocation })
|
|
11032
|
-
] })
|
|
11033
|
-
] }),
|
|
11034
|
-
/* @__PURE__ */ jsx(
|
|
11035
|
-
IconButton,
|
|
11036
|
-
{
|
|
11037
|
-
size: "small",
|
|
11038
|
-
type: "button",
|
|
11039
|
-
variant: "transparent",
|
|
11040
|
-
onClick: onRemove,
|
|
11041
|
-
isLoading: isPending || isLoading,
|
|
11042
|
-
children: /* @__PURE__ */ jsx(XMark, {})
|
|
11043
|
-
}
|
|
11044
|
-
)
|
|
11045
|
-
]
|
|
11046
|
-
},
|
|
11047
|
-
promotion.id
|
|
11048
|
-
);
|
|
11049
|
-
};
|
|
11050
|
-
function getDisplayValue(promotion) {
|
|
11051
|
-
var _a, _b, _c, _d;
|
|
11052
|
-
const value = (_a = promotion.application_method) == null ? void 0 : _a.value;
|
|
11053
|
-
if (!value) {
|
|
11054
|
-
return null;
|
|
11055
|
-
}
|
|
11056
|
-
if (((_b = promotion.application_method) == null ? void 0 : _b.type) === "fixed") {
|
|
11057
|
-
const currency = (_c = promotion.application_method) == null ? void 0 : _c.currency_code;
|
|
11058
|
-
if (!currency) {
|
|
11059
|
-
return null;
|
|
11060
|
-
}
|
|
11061
|
-
return getLocaleAmount(value, currency);
|
|
11062
|
-
} else if (((_d = promotion.application_method) == null ? void 0 : _d.type) === "percentage") {
|
|
11063
|
-
return formatPercentage(value);
|
|
11064
|
-
}
|
|
11065
|
-
return null;
|
|
11066
|
-
}
|
|
11067
|
-
const formatter = new Intl.NumberFormat([], {
|
|
11068
|
-
style: "percent",
|
|
11069
|
-
minimumFractionDigits: 2
|
|
11070
|
-
});
|
|
11071
|
-
const formatPercentage = (value, isPercentageValue = false) => {
|
|
11072
|
-
let val = value || 0;
|
|
11073
|
-
if (!isPercentageValue) {
|
|
11074
|
-
val = val / 100;
|
|
11075
|
-
}
|
|
11076
|
-
return formatter.format(val);
|
|
11077
|
-
};
|
|
11078
|
-
function getPromotionIds(items, shippingMethods) {
|
|
11079
|
-
const promotionIds = /* @__PURE__ */ new Set();
|
|
11080
|
-
for (const item of items) {
|
|
11081
|
-
if (item.adjustments) {
|
|
11082
|
-
for (const adjustment of item.adjustments) {
|
|
11083
|
-
if (adjustment.promotion_id) {
|
|
11084
|
-
promotionIds.add(adjustment.promotion_id);
|
|
11085
|
-
}
|
|
11086
|
-
}
|
|
11087
|
-
}
|
|
11088
|
-
}
|
|
11089
|
-
for (const shippingMethod of shippingMethods) {
|
|
11090
|
-
if (shippingMethod.adjustments) {
|
|
11091
|
-
for (const adjustment of shippingMethod.adjustments) {
|
|
11092
|
-
if (adjustment.promotion_id) {
|
|
11093
|
-
promotionIds.add(adjustment.promotion_id);
|
|
11094
|
-
}
|
|
11095
|
-
}
|
|
11096
|
-
}
|
|
11097
|
-
}
|
|
11098
|
-
return Array.from(promotionIds);
|
|
11099
|
-
}
|
|
11100
|
-
const InlineTip = forwardRef(
|
|
11101
|
-
({ variant = "tip", label, className, children, ...props }, ref) => {
|
|
11102
|
-
const labelValue = label || (variant === "warning" ? "Warning" : "Tip");
|
|
11103
|
-
return /* @__PURE__ */ jsxs(
|
|
11104
|
-
"div",
|
|
11105
|
-
{
|
|
11106
|
-
ref,
|
|
11107
|
-
className: clx(
|
|
11108
|
-
"bg-ui-bg-component txt-small text-ui-fg-subtle grid grid-cols-[4px_1fr] items-start gap-3 rounded-lg border p-3",
|
|
11109
|
-
className
|
|
11110
|
-
),
|
|
11111
|
-
...props,
|
|
11112
|
-
children: [
|
|
11113
|
-
/* @__PURE__ */ jsx(
|
|
11114
|
-
"div",
|
|
11115
|
-
{
|
|
11116
|
-
role: "presentation",
|
|
11117
|
-
className: clx("w-4px bg-ui-tag-neutral-icon h-full rounded-full", {
|
|
11118
|
-
"bg-ui-tag-orange-icon": variant === "warning"
|
|
11119
|
-
})
|
|
11120
|
-
}
|
|
11121
|
-
),
|
|
11122
|
-
/* @__PURE__ */ jsxs("div", { className: "text-pretty", children: [
|
|
11123
|
-
/* @__PURE__ */ jsxs("strong", { className: "txt-small-plus text-ui-fg-base", children: [
|
|
11124
|
-
labelValue,
|
|
11125
|
-
":"
|
|
11126
|
-
] }),
|
|
11127
|
-
" ",
|
|
11128
|
-
children
|
|
11129
|
-
] })
|
|
11130
|
-
]
|
|
11131
|
-
}
|
|
11132
|
-
);
|
|
11133
|
-
}
|
|
11134
|
-
);
|
|
11135
|
-
InlineTip.displayName = "InlineTip";
|
|
11136
|
-
const MetadataFieldSchema = objectType({
|
|
11137
|
-
key: stringType(),
|
|
11138
|
-
disabled: booleanType().optional(),
|
|
11139
|
-
value: anyType()
|
|
11140
|
-
});
|
|
11141
|
-
const MetadataSchema = objectType({
|
|
11142
|
-
metadata: arrayType(MetadataFieldSchema)
|
|
11143
|
-
});
|
|
11144
|
-
const Metadata = () => {
|
|
11145
|
-
const { id } = useParams();
|
|
11146
|
-
const { order, isPending, isError, error } = useOrder(id, {
|
|
11147
|
-
fields: "metadata"
|
|
11148
|
-
});
|
|
11149
|
-
if (isError) {
|
|
11150
|
-
throw error;
|
|
11151
|
-
}
|
|
11152
|
-
const isReady = !isPending && !!order;
|
|
11153
|
-
return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
|
|
11154
|
-
/* @__PURE__ */ jsxs(RouteDrawer.Header, { children: [
|
|
11155
|
-
/* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Metadata" }) }),
|
|
11156
|
-
/* @__PURE__ */ jsx(RouteDrawer.Description, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Add metadata to the draft order." }) })
|
|
11157
|
-
] }),
|
|
11158
|
-
!isReady ? /* @__PURE__ */ jsx(PlaceholderInner, {}) : /* @__PURE__ */ jsx(MetadataForm, { orderId: id, metadata: order == null ? void 0 : order.metadata })
|
|
11159
|
-
] });
|
|
11160
|
-
};
|
|
11161
|
-
const METADATA_KEY_LABEL_ID = "metadata-form-key-label";
|
|
11162
|
-
const METADATA_VALUE_LABEL_ID = "metadata-form-value-label";
|
|
11163
|
-
const MetadataForm = ({ orderId, metadata }) => {
|
|
11164
|
-
const { handleSuccess } = useRouteModal();
|
|
11165
|
-
const hasUneditableRows = getHasUneditableRows(metadata);
|
|
11166
|
-
const { mutateAsync, isPending } = useUpdateDraftOrder(orderId);
|
|
11167
|
-
const form = useForm({
|
|
11168
|
-
defaultValues: {
|
|
11169
|
-
metadata: getDefaultValues(metadata)
|
|
11170
|
-
},
|
|
11171
|
-
resolver: zodResolver(MetadataSchema)
|
|
11172
|
-
});
|
|
11173
|
-
const handleSubmit = form.handleSubmit(async (data) => {
|
|
11174
|
-
const parsedData = parseValues(data);
|
|
11175
|
-
await mutateAsync(
|
|
11176
|
-
{
|
|
11177
|
-
metadata: parsedData
|
|
11178
|
-
},
|
|
11179
|
-
{
|
|
11180
|
-
onSuccess: () => {
|
|
11181
|
-
toast.success("Metadata updated");
|
|
11182
|
-
handleSuccess();
|
|
11183
|
-
},
|
|
11184
|
-
onError: (error) => {
|
|
11185
|
-
toast.error(error.message);
|
|
11186
|
-
}
|
|
11187
|
-
}
|
|
11188
|
-
);
|
|
11189
|
-
});
|
|
11190
|
-
const { fields, insert, remove } = useFieldArray({
|
|
11191
|
-
control: form.control,
|
|
11192
|
-
name: "metadata"
|
|
11193
|
-
});
|
|
11194
|
-
function deleteRow(index) {
|
|
11195
|
-
remove(index);
|
|
11196
|
-
if (fields.length === 1) {
|
|
11197
|
-
insert(0, {
|
|
11198
|
-
key: "",
|
|
11199
|
-
value: "",
|
|
11200
|
-
disabled: false
|
|
11201
|
-
});
|
|
11202
|
-
}
|
|
11203
|
-
}
|
|
11204
|
-
function insertRow(index, position) {
|
|
11205
|
-
insert(index + (position === "above" ? 0 : 1), {
|
|
11206
|
-
key: "",
|
|
11207
|
-
value: "",
|
|
11208
|
-
disabled: false
|
|
10926
|
+
}
|
|
10927
|
+
function insertRow(index, position) {
|
|
10928
|
+
insert(index + (position === "above" ? 0 : 1), {
|
|
10929
|
+
key: "",
|
|
10930
|
+
value: "",
|
|
10931
|
+
disabled: false
|
|
11209
10932
|
});
|
|
11210
10933
|
}
|
|
11211
10934
|
return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(
|
|
@@ -11404,48 +11127,325 @@ function getDefaultValues(metadata) {
|
|
|
11404
11127
|
};
|
|
11405
11128
|
});
|
|
11406
11129
|
}
|
|
11407
|
-
function parseValues(values) {
|
|
11408
|
-
const metadata = values.metadata;
|
|
11409
|
-
const isEmpty = !metadata.length || metadata.length === 1 && !metadata[0].key && !metadata[0].value;
|
|
11410
|
-
if (isEmpty) {
|
|
11411
|
-
return null;
|
|
11130
|
+
function parseValues(values) {
|
|
11131
|
+
const metadata = values.metadata;
|
|
11132
|
+
const isEmpty = !metadata.length || metadata.length === 1 && !metadata[0].key && !metadata[0].value;
|
|
11133
|
+
if (isEmpty) {
|
|
11134
|
+
return null;
|
|
11135
|
+
}
|
|
11136
|
+
const update = {};
|
|
11137
|
+
metadata.forEach((field) => {
|
|
11138
|
+
let key = field.key;
|
|
11139
|
+
let value = field.value;
|
|
11140
|
+
const disabled = field.disabled;
|
|
11141
|
+
if (!key || !value) {
|
|
11142
|
+
return;
|
|
11143
|
+
}
|
|
11144
|
+
if (disabled) {
|
|
11145
|
+
update[key] = value;
|
|
11146
|
+
return;
|
|
11147
|
+
}
|
|
11148
|
+
key = key.trim();
|
|
11149
|
+
value = value.trim();
|
|
11150
|
+
if (value === "true") {
|
|
11151
|
+
update[key] = true;
|
|
11152
|
+
} else if (value === "false") {
|
|
11153
|
+
update[key] = false;
|
|
11154
|
+
} else {
|
|
11155
|
+
const parsedNumber = parseFloat(value);
|
|
11156
|
+
if (!isNaN(parsedNumber)) {
|
|
11157
|
+
update[key] = parsedNumber;
|
|
11158
|
+
} else {
|
|
11159
|
+
update[key] = value;
|
|
11160
|
+
}
|
|
11161
|
+
}
|
|
11162
|
+
});
|
|
11163
|
+
return update;
|
|
11164
|
+
}
|
|
11165
|
+
function getHasUneditableRows(metadata) {
|
|
11166
|
+
if (!metadata) {
|
|
11167
|
+
return false;
|
|
11168
|
+
}
|
|
11169
|
+
return Object.values(metadata).some(
|
|
11170
|
+
(value) => !EDITABLE_TYPES.includes(typeof value)
|
|
11171
|
+
);
|
|
11172
|
+
}
|
|
11173
|
+
const PROMOTION_QUERY_KEY = "promotions";
|
|
11174
|
+
const promotionsQueryKeys = {
|
|
11175
|
+
list: (query2) => [
|
|
11176
|
+
PROMOTION_QUERY_KEY,
|
|
11177
|
+
query2 ? query2 : void 0
|
|
11178
|
+
],
|
|
11179
|
+
detail: (id, query2) => [
|
|
11180
|
+
PROMOTION_QUERY_KEY,
|
|
11181
|
+
id,
|
|
11182
|
+
query2 ? query2 : void 0
|
|
11183
|
+
]
|
|
11184
|
+
};
|
|
11185
|
+
const usePromotions = (query2, options) => {
|
|
11186
|
+
const { data, ...rest } = useQuery({
|
|
11187
|
+
queryKey: promotionsQueryKeys.list(query2),
|
|
11188
|
+
queryFn: async () => sdk.admin.promotion.list(query2),
|
|
11189
|
+
...options
|
|
11190
|
+
});
|
|
11191
|
+
return { ...data, ...rest };
|
|
11192
|
+
};
|
|
11193
|
+
const Promotions = () => {
|
|
11194
|
+
const { id } = useParams();
|
|
11195
|
+
const {
|
|
11196
|
+
order: preview,
|
|
11197
|
+
isError: isPreviewError,
|
|
11198
|
+
error: previewError
|
|
11199
|
+
} = useOrderPreview(id, void 0);
|
|
11200
|
+
useInitiateOrderEdit({ preview });
|
|
11201
|
+
const { onCancel } = useCancelOrderEdit({ preview });
|
|
11202
|
+
if (isPreviewError) {
|
|
11203
|
+
throw previewError;
|
|
11204
|
+
}
|
|
11205
|
+
const isReady = !!preview;
|
|
11206
|
+
return /* @__PURE__ */ jsxs(RouteDrawer, { onClose: onCancel, children: [
|
|
11207
|
+
/* @__PURE__ */ jsx(RouteDrawer.Header, { children: /* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Edit Promotions" }) }) }),
|
|
11208
|
+
isReady && /* @__PURE__ */ jsx(PromotionForm, { preview })
|
|
11209
|
+
] });
|
|
11210
|
+
};
|
|
11211
|
+
const PromotionForm = ({ preview }) => {
|
|
11212
|
+
const { items, shipping_methods } = preview;
|
|
11213
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
11214
|
+
const [comboboxValue, setComboboxValue] = useState("");
|
|
11215
|
+
const { handleSuccess } = useRouteModal();
|
|
11216
|
+
const { mutateAsync: addPromotions, isPending: isAddingPromotions } = useDraftOrderAddPromotions(preview.id);
|
|
11217
|
+
const promoIds = getPromotionIds(items, shipping_methods);
|
|
11218
|
+
const { promotions, isPending, isError, error } = usePromotions(
|
|
11219
|
+
{
|
|
11220
|
+
id: promoIds
|
|
11221
|
+
},
|
|
11222
|
+
{
|
|
11223
|
+
enabled: !!promoIds.length
|
|
11224
|
+
}
|
|
11225
|
+
);
|
|
11226
|
+
const comboboxData = useComboboxData({
|
|
11227
|
+
queryKey: ["promotions", "combobox", promoIds],
|
|
11228
|
+
queryFn: async (params) => {
|
|
11229
|
+
return await sdk.admin.promotion.list({
|
|
11230
|
+
...params,
|
|
11231
|
+
id: {
|
|
11232
|
+
$nin: promoIds
|
|
11233
|
+
}
|
|
11234
|
+
});
|
|
11235
|
+
},
|
|
11236
|
+
getOptions: (data) => {
|
|
11237
|
+
return data.promotions.map((promotion) => ({
|
|
11238
|
+
label: promotion.code,
|
|
11239
|
+
value: promotion.code
|
|
11240
|
+
}));
|
|
11241
|
+
}
|
|
11242
|
+
});
|
|
11243
|
+
const add = async (value) => {
|
|
11244
|
+
if (!value) {
|
|
11245
|
+
return;
|
|
11246
|
+
}
|
|
11247
|
+
addPromotions(
|
|
11248
|
+
{
|
|
11249
|
+
promo_codes: [value]
|
|
11250
|
+
},
|
|
11251
|
+
{
|
|
11252
|
+
onError: (e) => {
|
|
11253
|
+
toast.error(e.message);
|
|
11254
|
+
comboboxData.onSearchValueChange("");
|
|
11255
|
+
setComboboxValue("");
|
|
11256
|
+
},
|
|
11257
|
+
onSuccess: () => {
|
|
11258
|
+
comboboxData.onSearchValueChange("");
|
|
11259
|
+
setComboboxValue("");
|
|
11260
|
+
}
|
|
11261
|
+
}
|
|
11262
|
+
);
|
|
11263
|
+
};
|
|
11264
|
+
const { mutateAsync: confirmOrderEdit } = useDraftOrderConfirmEdit(preview.id);
|
|
11265
|
+
const { mutateAsync: requestOrderEdit } = useOrderEditRequest(preview.id);
|
|
11266
|
+
const onSubmit = async () => {
|
|
11267
|
+
setIsSubmitting(true);
|
|
11268
|
+
let requestSucceeded = false;
|
|
11269
|
+
await requestOrderEdit(void 0, {
|
|
11270
|
+
onError: (e) => {
|
|
11271
|
+
toast.error(e.message);
|
|
11272
|
+
},
|
|
11273
|
+
onSuccess: () => {
|
|
11274
|
+
requestSucceeded = true;
|
|
11275
|
+
}
|
|
11276
|
+
});
|
|
11277
|
+
if (!requestSucceeded) {
|
|
11278
|
+
setIsSubmitting(false);
|
|
11279
|
+
return;
|
|
11280
|
+
}
|
|
11281
|
+
await confirmOrderEdit(void 0, {
|
|
11282
|
+
onError: (e) => {
|
|
11283
|
+
toast.error(e.message);
|
|
11284
|
+
},
|
|
11285
|
+
onSuccess: () => {
|
|
11286
|
+
handleSuccess();
|
|
11287
|
+
},
|
|
11288
|
+
onSettled: () => {
|
|
11289
|
+
setIsSubmitting(false);
|
|
11290
|
+
}
|
|
11291
|
+
});
|
|
11292
|
+
};
|
|
11293
|
+
if (isError) {
|
|
11294
|
+
throw error;
|
|
11295
|
+
}
|
|
11296
|
+
return /* @__PURE__ */ jsxs(KeyboundForm, { className: "flex flex-1 flex-col", onSubmit, children: [
|
|
11297
|
+
/* @__PURE__ */ jsx(RouteDrawer.Body, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
11298
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", children: [
|
|
11299
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
11300
|
+
/* @__PURE__ */ jsx(Label$1, { size: "small", weight: "plus", htmlFor: "promotion-combobox", children: "Apply promotions" }),
|
|
11301
|
+
/* @__PURE__ */ jsx(Hint$1, { id: "promotion-combobox-hint", children: "Manage promotions that should be applied to the order." })
|
|
11302
|
+
] }),
|
|
11303
|
+
/* @__PURE__ */ jsx(
|
|
11304
|
+
Combobox,
|
|
11305
|
+
{
|
|
11306
|
+
id: "promotion-combobox",
|
|
11307
|
+
"aria-describedby": "promotion-combobox-hint",
|
|
11308
|
+
isFetchingNextPage: comboboxData.isFetchingNextPage,
|
|
11309
|
+
fetchNextPage: comboboxData.fetchNextPage,
|
|
11310
|
+
options: comboboxData.options,
|
|
11311
|
+
onSearchValueChange: comboboxData.onSearchValueChange,
|
|
11312
|
+
searchValue: comboboxData.searchValue,
|
|
11313
|
+
disabled: comboboxData.disabled || isAddingPromotions,
|
|
11314
|
+
onChange: add,
|
|
11315
|
+
value: comboboxValue
|
|
11316
|
+
}
|
|
11317
|
+
)
|
|
11318
|
+
] }),
|
|
11319
|
+
/* @__PURE__ */ jsx(Divider, { variant: "dashed" }),
|
|
11320
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2", children: promotions == null ? void 0 : promotions.map((promotion) => /* @__PURE__ */ jsx(
|
|
11321
|
+
PromotionItem,
|
|
11322
|
+
{
|
|
11323
|
+
promotion,
|
|
11324
|
+
orderId: preview.id,
|
|
11325
|
+
isLoading: isPending
|
|
11326
|
+
},
|
|
11327
|
+
promotion.id
|
|
11328
|
+
)) })
|
|
11329
|
+
] }) }),
|
|
11330
|
+
/* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
|
|
11331
|
+
/* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
|
|
11332
|
+
/* @__PURE__ */ jsx(
|
|
11333
|
+
Button,
|
|
11334
|
+
{
|
|
11335
|
+
size: "small",
|
|
11336
|
+
type: "submit",
|
|
11337
|
+
isLoading: isSubmitting || isAddingPromotions,
|
|
11338
|
+
children: "Save"
|
|
11339
|
+
}
|
|
11340
|
+
)
|
|
11341
|
+
] }) })
|
|
11342
|
+
] });
|
|
11343
|
+
};
|
|
11344
|
+
const PromotionItem = ({
|
|
11345
|
+
promotion,
|
|
11346
|
+
orderId,
|
|
11347
|
+
isLoading
|
|
11348
|
+
}) => {
|
|
11349
|
+
var _a;
|
|
11350
|
+
const { mutateAsync: removePromotions, isPending } = useDraftOrderRemovePromotions(orderId);
|
|
11351
|
+
const onRemove = async () => {
|
|
11352
|
+
removePromotions(
|
|
11353
|
+
{
|
|
11354
|
+
promo_codes: [promotion.code]
|
|
11355
|
+
},
|
|
11356
|
+
{
|
|
11357
|
+
onError: (e) => {
|
|
11358
|
+
toast.error(e.message);
|
|
11359
|
+
}
|
|
11360
|
+
}
|
|
11361
|
+
);
|
|
11362
|
+
};
|
|
11363
|
+
const displayValue = getDisplayValue(promotion);
|
|
11364
|
+
return /* @__PURE__ */ jsxs(
|
|
11365
|
+
"div",
|
|
11366
|
+
{
|
|
11367
|
+
className: clx(
|
|
11368
|
+
"bg-ui-bg-component shadow-elevation-card-rest flex items-center justify-between rounded-lg px-3 py-2",
|
|
11369
|
+
{
|
|
11370
|
+
"animate-pulse": isLoading
|
|
11371
|
+
}
|
|
11372
|
+
),
|
|
11373
|
+
children: [
|
|
11374
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
11375
|
+
/* @__PURE__ */ jsx(Text, { size: "small", weight: "plus", leading: "compact", children: promotion.code }),
|
|
11376
|
+
/* @__PURE__ */ jsxs("div", { className: "text-ui-fg-subtle flex items-center gap-1.5", children: [
|
|
11377
|
+
displayValue && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
11378
|
+
/* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", children: displayValue }),
|
|
11379
|
+
/* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", children: "·" })
|
|
11380
|
+
] }),
|
|
11381
|
+
/* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", className: "capitalize", children: (_a = promotion.application_method) == null ? void 0 : _a.allocation })
|
|
11382
|
+
] })
|
|
11383
|
+
] }),
|
|
11384
|
+
/* @__PURE__ */ jsx(
|
|
11385
|
+
IconButton,
|
|
11386
|
+
{
|
|
11387
|
+
size: "small",
|
|
11388
|
+
type: "button",
|
|
11389
|
+
variant: "transparent",
|
|
11390
|
+
onClick: onRemove,
|
|
11391
|
+
isLoading: isPending || isLoading,
|
|
11392
|
+
children: /* @__PURE__ */ jsx(XMark, {})
|
|
11393
|
+
}
|
|
11394
|
+
)
|
|
11395
|
+
]
|
|
11396
|
+
},
|
|
11397
|
+
promotion.id
|
|
11398
|
+
);
|
|
11399
|
+
};
|
|
11400
|
+
function getDisplayValue(promotion) {
|
|
11401
|
+
var _a, _b, _c, _d;
|
|
11402
|
+
const value = (_a = promotion.application_method) == null ? void 0 : _a.value;
|
|
11403
|
+
if (!value) {
|
|
11404
|
+
return null;
|
|
11405
|
+
}
|
|
11406
|
+
if (((_b = promotion.application_method) == null ? void 0 : _b.type) === "fixed") {
|
|
11407
|
+
const currency = (_c = promotion.application_method) == null ? void 0 : _c.currency_code;
|
|
11408
|
+
if (!currency) {
|
|
11409
|
+
return null;
|
|
11410
|
+
}
|
|
11411
|
+
return getLocaleAmount(value, currency);
|
|
11412
|
+
} else if (((_d = promotion.application_method) == null ? void 0 : _d.type) === "percentage") {
|
|
11413
|
+
return formatPercentage(value);
|
|
11414
|
+
}
|
|
11415
|
+
return null;
|
|
11416
|
+
}
|
|
11417
|
+
const formatter = new Intl.NumberFormat([], {
|
|
11418
|
+
style: "percent",
|
|
11419
|
+
minimumFractionDigits: 2
|
|
11420
|
+
});
|
|
11421
|
+
const formatPercentage = (value, isPercentageValue = false) => {
|
|
11422
|
+
let val = value || 0;
|
|
11423
|
+
if (!isPercentageValue) {
|
|
11424
|
+
val = val / 100;
|
|
11412
11425
|
}
|
|
11413
|
-
|
|
11414
|
-
|
|
11415
|
-
|
|
11416
|
-
|
|
11417
|
-
|
|
11418
|
-
if (
|
|
11419
|
-
|
|
11420
|
-
|
|
11421
|
-
|
|
11422
|
-
|
|
11423
|
-
|
|
11426
|
+
return formatter.format(val);
|
|
11427
|
+
};
|
|
11428
|
+
function getPromotionIds(items, shippingMethods) {
|
|
11429
|
+
const promotionIds = /* @__PURE__ */ new Set();
|
|
11430
|
+
for (const item of items) {
|
|
11431
|
+
if (item.adjustments) {
|
|
11432
|
+
for (const adjustment of item.adjustments) {
|
|
11433
|
+
if (adjustment.promotion_id) {
|
|
11434
|
+
promotionIds.add(adjustment.promotion_id);
|
|
11435
|
+
}
|
|
11436
|
+
}
|
|
11424
11437
|
}
|
|
11425
|
-
|
|
11426
|
-
|
|
11427
|
-
if (
|
|
11428
|
-
|
|
11429
|
-
|
|
11430
|
-
|
|
11431
|
-
|
|
11432
|
-
const parsedNumber = parseFloat(value);
|
|
11433
|
-
if (!isNaN(parsedNumber)) {
|
|
11434
|
-
update[key] = parsedNumber;
|
|
11435
|
-
} else {
|
|
11436
|
-
update[key] = value;
|
|
11438
|
+
}
|
|
11439
|
+
for (const shippingMethod of shippingMethods) {
|
|
11440
|
+
if (shippingMethod.adjustments) {
|
|
11441
|
+
for (const adjustment of shippingMethod.adjustments) {
|
|
11442
|
+
if (adjustment.promotion_id) {
|
|
11443
|
+
promotionIds.add(adjustment.promotion_id);
|
|
11444
|
+
}
|
|
11437
11445
|
}
|
|
11438
11446
|
}
|
|
11439
|
-
});
|
|
11440
|
-
return update;
|
|
11441
|
-
}
|
|
11442
|
-
function getHasUneditableRows(metadata) {
|
|
11443
|
-
if (!metadata) {
|
|
11444
|
-
return false;
|
|
11445
11447
|
}
|
|
11446
|
-
return
|
|
11447
|
-
(value) => !EDITABLE_TYPES.includes(typeof value)
|
|
11448
|
-
);
|
|
11448
|
+
return Array.from(promotionIds);
|
|
11449
11449
|
}
|
|
11450
11450
|
const SalesChannel = () => {
|
|
11451
11451
|
const { id } = useParams();
|
|
@@ -12349,17 +12349,220 @@ const CustomAmountField = ({
|
|
|
12349
12349
|
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(
|
|
12350
12350
|
CurrencyInput,
|
|
12351
12351
|
{
|
|
12352
|
-
...field,
|
|
12353
|
-
onValueChange: (value) => onChange(value),
|
|
12354
|
-
symbol: getNativeSymbol(currencyCode),
|
|
12355
|
-
code: currencyCode
|
|
12352
|
+
...field,
|
|
12353
|
+
onValueChange: (value) => onChange(value),
|
|
12354
|
+
symbol: getNativeSymbol(currencyCode),
|
|
12355
|
+
code: currencyCode
|
|
12356
|
+
}
|
|
12357
|
+
) })
|
|
12358
|
+
] });
|
|
12359
|
+
}
|
|
12360
|
+
}
|
|
12361
|
+
);
|
|
12362
|
+
};
|
|
12363
|
+
const ShippingAddress = () => {
|
|
12364
|
+
const { id } = useParams();
|
|
12365
|
+
const { order, isPending, isError, error } = useOrder(id, {
|
|
12366
|
+
fields: "+shipping_address"
|
|
12367
|
+
});
|
|
12368
|
+
if (isError) {
|
|
12369
|
+
throw error;
|
|
12370
|
+
}
|
|
12371
|
+
const isReady = !isPending && !!order;
|
|
12372
|
+
return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
|
|
12373
|
+
/* @__PURE__ */ jsxs(RouteDrawer.Header, { children: [
|
|
12374
|
+
/* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Edit Shipping Address" }) }),
|
|
12375
|
+
/* @__PURE__ */ jsx(RouteDrawer.Description, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Edit the shipping address for the draft order" }) })
|
|
12376
|
+
] }),
|
|
12377
|
+
isReady && /* @__PURE__ */ jsx(ShippingAddressForm, { order })
|
|
12378
|
+
] });
|
|
12379
|
+
};
|
|
12380
|
+
const ShippingAddressForm = ({ order }) => {
|
|
12381
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
12382
|
+
const form = useForm({
|
|
12383
|
+
defaultValues: {
|
|
12384
|
+
first_name: ((_a = order.shipping_address) == null ? void 0 : _a.first_name) ?? "",
|
|
12385
|
+
last_name: ((_b = order.shipping_address) == null ? void 0 : _b.last_name) ?? "",
|
|
12386
|
+
company: ((_c = order.shipping_address) == null ? void 0 : _c.company) ?? "",
|
|
12387
|
+
address_1: ((_d = order.shipping_address) == null ? void 0 : _d.address_1) ?? "",
|
|
12388
|
+
address_2: ((_e = order.shipping_address) == null ? void 0 : _e.address_2) ?? "",
|
|
12389
|
+
city: ((_f = order.shipping_address) == null ? void 0 : _f.city) ?? "",
|
|
12390
|
+
province: ((_g = order.shipping_address) == null ? void 0 : _g.province) ?? "",
|
|
12391
|
+
country_code: ((_h = order.shipping_address) == null ? void 0 : _h.country_code) ?? "",
|
|
12392
|
+
postal_code: ((_i = order.shipping_address) == null ? void 0 : _i.postal_code) ?? "",
|
|
12393
|
+
phone: ((_j = order.shipping_address) == null ? void 0 : _j.phone) ?? ""
|
|
12394
|
+
},
|
|
12395
|
+
resolver: zodResolver(schema$1)
|
|
12396
|
+
});
|
|
12397
|
+
const { mutateAsync, isPending } = useUpdateDraftOrder(order.id);
|
|
12398
|
+
const { handleSuccess } = useRouteModal();
|
|
12399
|
+
const onSubmit = form.handleSubmit(async (data) => {
|
|
12400
|
+
await mutateAsync(
|
|
12401
|
+
{
|
|
12402
|
+
shipping_address: {
|
|
12403
|
+
first_name: data.first_name,
|
|
12404
|
+
last_name: data.last_name,
|
|
12405
|
+
company: data.company,
|
|
12406
|
+
address_1: data.address_1,
|
|
12407
|
+
address_2: data.address_2,
|
|
12408
|
+
city: data.city,
|
|
12409
|
+
province: data.province,
|
|
12410
|
+
country_code: data.country_code,
|
|
12411
|
+
postal_code: data.postal_code,
|
|
12412
|
+
phone: data.phone
|
|
12413
|
+
}
|
|
12414
|
+
},
|
|
12415
|
+
{
|
|
12416
|
+
onSuccess: () => {
|
|
12417
|
+
handleSuccess();
|
|
12418
|
+
},
|
|
12419
|
+
onError: (error) => {
|
|
12420
|
+
toast.error(error.message);
|
|
12421
|
+
}
|
|
12422
|
+
}
|
|
12423
|
+
);
|
|
12424
|
+
});
|
|
12425
|
+
return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(
|
|
12426
|
+
KeyboundForm,
|
|
12427
|
+
{
|
|
12428
|
+
className: "flex flex-1 flex-col overflow-hidden",
|
|
12429
|
+
onSubmit,
|
|
12430
|
+
children: [
|
|
12431
|
+
/* @__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: [
|
|
12432
|
+
/* @__PURE__ */ jsx(
|
|
12433
|
+
Form$2.Field,
|
|
12434
|
+
{
|
|
12435
|
+
control: form.control,
|
|
12436
|
+
name: "country_code",
|
|
12437
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12438
|
+
/* @__PURE__ */ jsx(Form$2.Label, { children: "Country" }),
|
|
12439
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(CountrySelect, { ...field }) }),
|
|
12440
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12441
|
+
] })
|
|
12442
|
+
}
|
|
12443
|
+
),
|
|
12444
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
12445
|
+
/* @__PURE__ */ jsx(
|
|
12446
|
+
Form$2.Field,
|
|
12447
|
+
{
|
|
12448
|
+
control: form.control,
|
|
12449
|
+
name: "first_name",
|
|
12450
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12451
|
+
/* @__PURE__ */ jsx(Form$2.Label, { children: "First name" }),
|
|
12452
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12453
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12454
|
+
] })
|
|
12455
|
+
}
|
|
12456
|
+
),
|
|
12457
|
+
/* @__PURE__ */ jsx(
|
|
12458
|
+
Form$2.Field,
|
|
12459
|
+
{
|
|
12460
|
+
control: form.control,
|
|
12461
|
+
name: "last_name",
|
|
12462
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12463
|
+
/* @__PURE__ */ jsx(Form$2.Label, { children: "Last name" }),
|
|
12464
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12465
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12466
|
+
] })
|
|
12467
|
+
}
|
|
12468
|
+
)
|
|
12469
|
+
] }),
|
|
12470
|
+
/* @__PURE__ */ jsx(
|
|
12471
|
+
Form$2.Field,
|
|
12472
|
+
{
|
|
12473
|
+
control: form.control,
|
|
12474
|
+
name: "company",
|
|
12475
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12476
|
+
/* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Company" }),
|
|
12477
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12478
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12479
|
+
] })
|
|
12480
|
+
}
|
|
12481
|
+
),
|
|
12482
|
+
/* @__PURE__ */ jsx(
|
|
12483
|
+
Form$2.Field,
|
|
12484
|
+
{
|
|
12485
|
+
control: form.control,
|
|
12486
|
+
name: "address_1",
|
|
12487
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12488
|
+
/* @__PURE__ */ jsx(Form$2.Label, { children: "Address" }),
|
|
12489
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12490
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12491
|
+
] })
|
|
12492
|
+
}
|
|
12493
|
+
),
|
|
12494
|
+
/* @__PURE__ */ jsx(
|
|
12495
|
+
Form$2.Field,
|
|
12496
|
+
{
|
|
12497
|
+
control: form.control,
|
|
12498
|
+
name: "address_2",
|
|
12499
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12500
|
+
/* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Apartment, suite, etc." }),
|
|
12501
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12502
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12503
|
+
] })
|
|
12504
|
+
}
|
|
12505
|
+
),
|
|
12506
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
12507
|
+
/* @__PURE__ */ jsx(
|
|
12508
|
+
Form$2.Field,
|
|
12509
|
+
{
|
|
12510
|
+
control: form.control,
|
|
12511
|
+
name: "postal_code",
|
|
12512
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12513
|
+
/* @__PURE__ */ jsx(Form$2.Label, { children: "Postal code" }),
|
|
12514
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12515
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12516
|
+
] })
|
|
12517
|
+
}
|
|
12518
|
+
),
|
|
12519
|
+
/* @__PURE__ */ jsx(
|
|
12520
|
+
Form$2.Field,
|
|
12521
|
+
{
|
|
12522
|
+
control: form.control,
|
|
12523
|
+
name: "city",
|
|
12524
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12525
|
+
/* @__PURE__ */ jsx(Form$2.Label, { children: "City" }),
|
|
12526
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12527
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12528
|
+
] })
|
|
12529
|
+
}
|
|
12530
|
+
)
|
|
12531
|
+
] }),
|
|
12532
|
+
/* @__PURE__ */ jsx(
|
|
12533
|
+
Form$2.Field,
|
|
12534
|
+
{
|
|
12535
|
+
control: form.control,
|
|
12536
|
+
name: "province",
|
|
12537
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12538
|
+
/* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Province / State" }),
|
|
12539
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12540
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12541
|
+
] })
|
|
12542
|
+
}
|
|
12543
|
+
),
|
|
12544
|
+
/* @__PURE__ */ jsx(
|
|
12545
|
+
Form$2.Field,
|
|
12546
|
+
{
|
|
12547
|
+
control: form.control,
|
|
12548
|
+
name: "phone",
|
|
12549
|
+
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12550
|
+
/* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Phone" }),
|
|
12551
|
+
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12552
|
+
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12553
|
+
] })
|
|
12356
12554
|
}
|
|
12357
|
-
)
|
|
12358
|
-
] })
|
|
12359
|
-
|
|
12555
|
+
)
|
|
12556
|
+
] }) }),
|
|
12557
|
+
/* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-2", children: [
|
|
12558
|
+
/* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: "Cancel" }) }),
|
|
12559
|
+
/* @__PURE__ */ jsx(Button, { size: "small", type: "submit", isLoading: isPending, children: "Save" })
|
|
12560
|
+
] }) })
|
|
12561
|
+
]
|
|
12360
12562
|
}
|
|
12361
|
-
);
|
|
12563
|
+
) });
|
|
12362
12564
|
};
|
|
12565
|
+
const schema$1 = addressSchema;
|
|
12363
12566
|
const TransferOwnership = () => {
|
|
12364
12567
|
const { id } = useParams();
|
|
12365
12568
|
const { draft_order, isPending, isError, error } = useDraftOrder(id, {
|
|
@@ -12383,7 +12586,7 @@ const TransferOwnershipForm = ({ order }) => {
|
|
|
12383
12586
|
defaultValues: {
|
|
12384
12587
|
customer_id: order.customer_id || ""
|
|
12385
12588
|
},
|
|
12386
|
-
resolver: zodResolver(schema
|
|
12589
|
+
resolver: zodResolver(schema)
|
|
12387
12590
|
});
|
|
12388
12591
|
const { mutateAsync, isPending } = useUpdateDraftOrder(order.id);
|
|
12389
12592
|
const { handleSuccess } = useRouteModal();
|
|
@@ -12833,212 +13036,9 @@ const Illustration = () => {
|
|
|
12833
13036
|
}
|
|
12834
13037
|
);
|
|
12835
13038
|
};
|
|
12836
|
-
const schema
|
|
13039
|
+
const schema = objectType({
|
|
12837
13040
|
customer_id: stringType().min(1)
|
|
12838
13041
|
});
|
|
12839
|
-
const ShippingAddress = () => {
|
|
12840
|
-
const { id } = useParams();
|
|
12841
|
-
const { order, isPending, isError, error } = useOrder(id, {
|
|
12842
|
-
fields: "+shipping_address"
|
|
12843
|
-
});
|
|
12844
|
-
if (isError) {
|
|
12845
|
-
throw error;
|
|
12846
|
-
}
|
|
12847
|
-
const isReady = !isPending && !!order;
|
|
12848
|
-
return /* @__PURE__ */ jsxs(RouteDrawer, { children: [
|
|
12849
|
-
/* @__PURE__ */ jsxs(RouteDrawer.Header, { children: [
|
|
12850
|
-
/* @__PURE__ */ jsx(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx(Heading, { children: "Edit Shipping Address" }) }),
|
|
12851
|
-
/* @__PURE__ */ jsx(RouteDrawer.Description, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Edit the shipping address for the draft order" }) })
|
|
12852
|
-
] }),
|
|
12853
|
-
isReady && /* @__PURE__ */ jsx(ShippingAddressForm, { order })
|
|
12854
|
-
] });
|
|
12855
|
-
};
|
|
12856
|
-
const ShippingAddressForm = ({ order }) => {
|
|
12857
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
12858
|
-
const form = useForm({
|
|
12859
|
-
defaultValues: {
|
|
12860
|
-
first_name: ((_a = order.shipping_address) == null ? void 0 : _a.first_name) ?? "",
|
|
12861
|
-
last_name: ((_b = order.shipping_address) == null ? void 0 : _b.last_name) ?? "",
|
|
12862
|
-
company: ((_c = order.shipping_address) == null ? void 0 : _c.company) ?? "",
|
|
12863
|
-
address_1: ((_d = order.shipping_address) == null ? void 0 : _d.address_1) ?? "",
|
|
12864
|
-
address_2: ((_e = order.shipping_address) == null ? void 0 : _e.address_2) ?? "",
|
|
12865
|
-
city: ((_f = order.shipping_address) == null ? void 0 : _f.city) ?? "",
|
|
12866
|
-
province: ((_g = order.shipping_address) == null ? void 0 : _g.province) ?? "",
|
|
12867
|
-
country_code: ((_h = order.shipping_address) == null ? void 0 : _h.country_code) ?? "",
|
|
12868
|
-
postal_code: ((_i = order.shipping_address) == null ? void 0 : _i.postal_code) ?? "",
|
|
12869
|
-
phone: ((_j = order.shipping_address) == null ? void 0 : _j.phone) ?? ""
|
|
12870
|
-
},
|
|
12871
|
-
resolver: zodResolver(schema)
|
|
12872
|
-
});
|
|
12873
|
-
const { mutateAsync, isPending } = useUpdateDraftOrder(order.id);
|
|
12874
|
-
const { handleSuccess } = useRouteModal();
|
|
12875
|
-
const onSubmit = form.handleSubmit(async (data) => {
|
|
12876
|
-
await mutateAsync(
|
|
12877
|
-
{
|
|
12878
|
-
shipping_address: {
|
|
12879
|
-
first_name: data.first_name,
|
|
12880
|
-
last_name: data.last_name,
|
|
12881
|
-
company: data.company,
|
|
12882
|
-
address_1: data.address_1,
|
|
12883
|
-
address_2: data.address_2,
|
|
12884
|
-
city: data.city,
|
|
12885
|
-
province: data.province,
|
|
12886
|
-
country_code: data.country_code,
|
|
12887
|
-
postal_code: data.postal_code,
|
|
12888
|
-
phone: data.phone
|
|
12889
|
-
}
|
|
12890
|
-
},
|
|
12891
|
-
{
|
|
12892
|
-
onSuccess: () => {
|
|
12893
|
-
handleSuccess();
|
|
12894
|
-
},
|
|
12895
|
-
onError: (error) => {
|
|
12896
|
-
toast.error(error.message);
|
|
12897
|
-
}
|
|
12898
|
-
}
|
|
12899
|
-
);
|
|
12900
|
-
});
|
|
12901
|
-
return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(
|
|
12902
|
-
KeyboundForm,
|
|
12903
|
-
{
|
|
12904
|
-
className: "flex flex-1 flex-col overflow-hidden",
|
|
12905
|
-
onSubmit,
|
|
12906
|
-
children: [
|
|
12907
|
-
/* @__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: [
|
|
12908
|
-
/* @__PURE__ */ jsx(
|
|
12909
|
-
Form$2.Field,
|
|
12910
|
-
{
|
|
12911
|
-
control: form.control,
|
|
12912
|
-
name: "country_code",
|
|
12913
|
-
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12914
|
-
/* @__PURE__ */ jsx(Form$2.Label, { children: "Country" }),
|
|
12915
|
-
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(CountrySelect, { ...field }) }),
|
|
12916
|
-
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12917
|
-
] })
|
|
12918
|
-
}
|
|
12919
|
-
),
|
|
12920
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
12921
|
-
/* @__PURE__ */ jsx(
|
|
12922
|
-
Form$2.Field,
|
|
12923
|
-
{
|
|
12924
|
-
control: form.control,
|
|
12925
|
-
name: "first_name",
|
|
12926
|
-
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12927
|
-
/* @__PURE__ */ jsx(Form$2.Label, { children: "First name" }),
|
|
12928
|
-
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12929
|
-
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12930
|
-
] })
|
|
12931
|
-
}
|
|
12932
|
-
),
|
|
12933
|
-
/* @__PURE__ */ jsx(
|
|
12934
|
-
Form$2.Field,
|
|
12935
|
-
{
|
|
12936
|
-
control: form.control,
|
|
12937
|
-
name: "last_name",
|
|
12938
|
-
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12939
|
-
/* @__PURE__ */ jsx(Form$2.Label, { children: "Last name" }),
|
|
12940
|
-
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12941
|
-
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12942
|
-
] })
|
|
12943
|
-
}
|
|
12944
|
-
)
|
|
12945
|
-
] }),
|
|
12946
|
-
/* @__PURE__ */ jsx(
|
|
12947
|
-
Form$2.Field,
|
|
12948
|
-
{
|
|
12949
|
-
control: form.control,
|
|
12950
|
-
name: "company",
|
|
12951
|
-
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12952
|
-
/* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Company" }),
|
|
12953
|
-
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12954
|
-
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12955
|
-
] })
|
|
12956
|
-
}
|
|
12957
|
-
),
|
|
12958
|
-
/* @__PURE__ */ jsx(
|
|
12959
|
-
Form$2.Field,
|
|
12960
|
-
{
|
|
12961
|
-
control: form.control,
|
|
12962
|
-
name: "address_1",
|
|
12963
|
-
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12964
|
-
/* @__PURE__ */ jsx(Form$2.Label, { children: "Address" }),
|
|
12965
|
-
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12966
|
-
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12967
|
-
] })
|
|
12968
|
-
}
|
|
12969
|
-
),
|
|
12970
|
-
/* @__PURE__ */ jsx(
|
|
12971
|
-
Form$2.Field,
|
|
12972
|
-
{
|
|
12973
|
-
control: form.control,
|
|
12974
|
-
name: "address_2",
|
|
12975
|
-
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12976
|
-
/* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Apartment, suite, etc." }),
|
|
12977
|
-
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12978
|
-
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12979
|
-
] })
|
|
12980
|
-
}
|
|
12981
|
-
),
|
|
12982
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
12983
|
-
/* @__PURE__ */ jsx(
|
|
12984
|
-
Form$2.Field,
|
|
12985
|
-
{
|
|
12986
|
-
control: form.control,
|
|
12987
|
-
name: "postal_code",
|
|
12988
|
-
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
12989
|
-
/* @__PURE__ */ jsx(Form$2.Label, { children: "Postal code" }),
|
|
12990
|
-
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
12991
|
-
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
12992
|
-
] })
|
|
12993
|
-
}
|
|
12994
|
-
),
|
|
12995
|
-
/* @__PURE__ */ jsx(
|
|
12996
|
-
Form$2.Field,
|
|
12997
|
-
{
|
|
12998
|
-
control: form.control,
|
|
12999
|
-
name: "city",
|
|
13000
|
-
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
13001
|
-
/* @__PURE__ */ jsx(Form$2.Label, { children: "City" }),
|
|
13002
|
-
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
13003
|
-
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
13004
|
-
] })
|
|
13005
|
-
}
|
|
13006
|
-
)
|
|
13007
|
-
] }),
|
|
13008
|
-
/* @__PURE__ */ jsx(
|
|
13009
|
-
Form$2.Field,
|
|
13010
|
-
{
|
|
13011
|
-
control: form.control,
|
|
13012
|
-
name: "province",
|
|
13013
|
-
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
13014
|
-
/* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Province / State" }),
|
|
13015
|
-
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
13016
|
-
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
13017
|
-
] })
|
|
13018
|
-
}
|
|
13019
|
-
),
|
|
13020
|
-
/* @__PURE__ */ jsx(
|
|
13021
|
-
Form$2.Field,
|
|
13022
|
-
{
|
|
13023
|
-
control: form.control,
|
|
13024
|
-
name: "phone",
|
|
13025
|
-
render: ({ field }) => /* @__PURE__ */ jsxs(Form$2.Item, { children: [
|
|
13026
|
-
/* @__PURE__ */ jsx(Form$2.Label, { optional: true, children: "Phone" }),
|
|
13027
|
-
/* @__PURE__ */ jsx(Form$2.Control, { children: /* @__PURE__ */ jsx(Input, { ...field }) }),
|
|
13028
|
-
/* @__PURE__ */ jsx(Form$2.ErrorMessage, {})
|
|
13029
|
-
] })
|
|
13030
|
-
}
|
|
13031
|
-
)
|
|
13032
|
-
] }) }),
|
|
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", isLoading: isPending, children: "Save" })
|
|
13036
|
-
] }) })
|
|
13037
|
-
]
|
|
13038
|
-
}
|
|
13039
|
-
) });
|
|
13040
|
-
};
|
|
13041
|
-
const schema = addressSchema;
|
|
13042
13042
|
const widgetModule = { widgets: [] };
|
|
13043
13043
|
const routeModule = {
|
|
13044
13044
|
routes: [
|
|
@@ -13059,14 +13059,14 @@ const routeModule = {
|
|
|
13059
13059
|
handle,
|
|
13060
13060
|
loader,
|
|
13061
13061
|
children: [
|
|
13062
|
-
{
|
|
13063
|
-
Component: CustomItems,
|
|
13064
|
-
path: "/draft-orders/:id/custom-items"
|
|
13065
|
-
},
|
|
13066
13062
|
{
|
|
13067
13063
|
Component: BillingAddress,
|
|
13068
13064
|
path: "/draft-orders/:id/billing-address"
|
|
13069
13065
|
},
|
|
13066
|
+
{
|
|
13067
|
+
Component: CustomItems,
|
|
13068
|
+
path: "/draft-orders/:id/custom-items"
|
|
13069
|
+
},
|
|
13070
13070
|
{
|
|
13071
13071
|
Component: Email,
|
|
13072
13072
|
path: "/draft-orders/:id/email"
|
|
@@ -13075,14 +13075,14 @@ const routeModule = {
|
|
|
13075
13075
|
Component: Items,
|
|
13076
13076
|
path: "/draft-orders/:id/items"
|
|
13077
13077
|
},
|
|
13078
|
-
{
|
|
13079
|
-
Component: Promotions,
|
|
13080
|
-
path: "/draft-orders/:id/promotions"
|
|
13081
|
-
},
|
|
13082
13078
|
{
|
|
13083
13079
|
Component: Metadata,
|
|
13084
13080
|
path: "/draft-orders/:id/metadata"
|
|
13085
13081
|
},
|
|
13082
|
+
{
|
|
13083
|
+
Component: Promotions,
|
|
13084
|
+
path: "/draft-orders/:id/promotions"
|
|
13085
|
+
},
|
|
13086
13086
|
{
|
|
13087
13087
|
Component: SalesChannel,
|
|
13088
13088
|
path: "/draft-orders/:id/sales-channel"
|
|
@@ -13091,13 +13091,13 @@ const routeModule = {
|
|
|
13091
13091
|
Component: Shipping,
|
|
13092
13092
|
path: "/draft-orders/:id/shipping"
|
|
13093
13093
|
},
|
|
13094
|
-
{
|
|
13095
|
-
Component: TransferOwnership,
|
|
13096
|
-
path: "/draft-orders/:id/transfer-ownership"
|
|
13097
|
-
},
|
|
13098
13094
|
{
|
|
13099
13095
|
Component: ShippingAddress,
|
|
13100
13096
|
path: "/draft-orders/:id/shipping-address"
|
|
13097
|
+
},
|
|
13098
|
+
{
|
|
13099
|
+
Component: TransferOwnership,
|
|
13100
|
+
path: "/draft-orders/:id/transfer-ownership"
|
|
13101
13101
|
}
|
|
13102
13102
|
]
|
|
13103
13103
|
}
|