@mercurjs/admin 2.2.0-canary.36 → 2.2.0-canary.37
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/dist/{add-campaign-promotions-OTLO4M5C.js → add-campaign-promotions-26SSHLLG.js} +3 -3
- package/dist/{campaign-detail-GZV2HK2G.js → campaign-detail-VMJQISAE.js} +4 -4
- package/dist/{category-create-7UTOSFO5.js → category-create-AIS2MG7E.js} +2 -2
- package/dist/{category-detail-AYVW7LRB.js → category-detail-I3EEPAQR.js} +2 -2
- package/dist/{category-icon-edit-FMVPTC27.js → category-icon-edit-W2TPCSDC.js} +1 -1
- package/dist/{category-list-B6B3ZANX.js → category-list-QLHQST3D.js} +2 -2
- package/dist/{category-media-4SLUTBZS.js → category-media-PC4V7YU4.js} +1 -1
- package/dist/{category-products-IF33PO5Y.js → category-products-XGLUDL73.js} +1 -0
- package/dist/{chunk-GQUGCSJV.js → chunk-2MRYNLVT.js} +1 -1
- package/dist/{chunk-ZMSQW2M3.js → chunk-3UJQT6UR.js} +93 -45
- package/dist/{chunk-HHW4PPNH.js → chunk-4OCWOY2F.js} +8 -1
- package/dist/{chunk-P4GIBTTG.js → chunk-5BSSIDW6.js} +1 -1
- package/dist/{chunk-IHERG3JP.js → chunk-6YEVK7JJ.js} +12 -4
- package/dist/{chunk-TRXFVQXD.js → chunk-BLR3NTU6.js} +1 -1
- package/dist/{chunk-OB5RWOGA.js → chunk-C6AU3U22.js} +1 -1
- package/dist/{chunk-BW5MMF6W.js → chunk-CMZ4KATG.js} +2 -2
- package/dist/{chunk-R3YD5UOZ.js → chunk-CU4UVEHX.js} +36 -1
- package/dist/{chunk-GJB4UQZI.js → chunk-E32O3DUM.js} +1 -1
- package/dist/{chunk-DP3OBKUP.js → chunk-GX7YQ6GM.js} +1 -1
- package/dist/{chunk-WMVLWFFU.js → chunk-HBT7GVJD.js} +3 -4
- package/dist/{chunk-YAOYZQDK.js → chunk-KUKBV4XN.js} +1 -1
- package/dist/{chunk-CA4K6JDJ.js → chunk-MKNQ6BT6.js} +1 -1
- package/dist/{chunk-PQAQM6SB.js → chunk-NXMD36QG.js} +1 -1
- package/dist/{chunk-3OZRK7TN.js → chunk-OTXOV6YU.js} +1 -1
- package/dist/{chunk-MTOPGOKU.js → chunk-PAUULPNC.js} +1 -1
- package/dist/{chunk-WEWBHUEB.js → chunk-POMQZ6PN.js} +1 -1
- package/dist/{chunk-LECZPR6R.js → chunk-QJCUPZZQ.js} +4 -2
- package/dist/{chunk-HLUWC7C3.js → chunk-RLGMY7JJ.js} +1 -1
- package/dist/{chunk-OLAOEVZE.js → chunk-SWQC5UPD.js} +2 -2
- package/dist/{chunk-T2WVIET2.js → chunk-VM56ZITS.js} +4 -2
- package/dist/{chunk-R6DVBI5F.js → chunk-X3TWPSUM.js} +1 -1
- package/dist/{chunk-NX3YQW2B.js → chunk-XEB5I2KE.js} +2 -2
- package/dist/{chunk-TYXSRH47.js → chunk-ZDEIYWCK.js} +14 -4
- package/dist/{collection-create-T6HBO4LU.js → collection-create-5IGFVQKE.js} +1 -1
- package/dist/{collection-detail-PMSYCWE3.js → collection-detail-AB6HGJDM.js} +2 -2
- package/dist/{collection-icon-edit-VZP3W6AZ.js → collection-icon-edit-WCSKUDXE.js} +1 -1
- package/dist/{collection-list-EK2TBM3J.js → collection-list-UHFUKA5U.js} +3 -3
- package/dist/{collection-media-3Z2RJDVG.js → collection-media-YIV5BV3Y.js} +1 -1
- package/dist/{commission-rule-commission-edit-6675TZCZ.js → commission-rule-commission-edit-EXLLNUKM.js} +19 -4
- package/dist/{commission-rule-create-PEYCFGCW.js → commission-rule-create-3MCNOSWN.js} +9 -28
- package/dist/{commission-rule-edit-GCI67KZU.js → commission-rule-edit-X45EQ6BK.js} +24 -1
- package/dist/{global-commission-edit-AOZ6XLH7.js → global-commission-edit-7ZMMIV7B.js} +19 -12
- package/dist/index.js +51 -51
- package/dist/{inventory-create-HOQVSL2G.js → inventory-create-WJ3CCFTD.js} +2 -2
- package/dist/{inventory-stock-E4U2SS3Z.js → inventory-stock-F2BKMXY3.js} +1 -1
- package/dist/{location-service-zone-shipping-option-create-K6USZASG.js → location-service-zone-shipping-option-create-OLABLTSL.js} +3 -3
- package/dist/{location-service-zone-shipping-option-pricing-ZENGURN3.js → location-service-zone-shipping-option-pricing-TARZ34TW.js} +2 -2
- package/dist/{order-edit-billing-address-WQYQSLDB.js → order-edit-billing-address-IU6W76P3.js} +1 -1
- package/dist/pages/index.js +24 -24
- package/dist/{price-list-create-QEDMB4A6.js → price-list-create-UMA2NB3L.js} +3 -3
- package/dist/{price-list-prices-add-GVOZDWKE.js → price-list-prices-add-XLFLGFVG.js} +3 -3
- package/dist/{price-list-prices-edit-LNSUSN4V.js → price-list-prices-edit-MT6BFF3M.js} +2 -2
- package/dist/{product-bulk-edit-34KKEPJQ.js → product-bulk-edit-3AJGOE6E.js} +1 -1
- package/dist/{product-create-STXNKMAV.js → product-create-2SELD5CI.js} +4 -4
- package/dist/{product-detail-T4FOYZK7.js → product-detail-O7MVTHSN.js} +1 -1
- package/dist/{product-media-JFLRNBPR.js → product-media-S6L3IHUO.js} +2 -2
- package/dist/{product-organization-SGLOMAKK.js → product-organization-BYPV5QSZ.js} +1 -1
- package/dist/{product-tag-detail-ZV7V7UW3.js → product-tag-detail-SVDEVPMA.js} +2 -2
- package/dist/{product-tag-list-SZHBD5FA.js → product-tag-list-4ECQFBOA.js} +2 -2
- package/dist/{promotion-detail-AWVF7JHY.js → promotion-detail-25JCCLU2.js} +3 -3
- package/dist/{promotion-list-INBZ3OG3.js → promotion-list-RXLVU4G2.js} +4 -4
- package/dist/{refund-reason-list-UCZC5ASP.js → refund-reason-list-XMDZO34F.js} +2 -2
- package/dist/{reset-password-ZJW3AHYT.js → reset-password-GBVMOKXP.js} +1 -1
- package/dist/{return-reason-list-AJ4E3A56.js → return-reason-list-AW6MMUKD.js} +2 -2
- package/dist/{store-bulk-edit-5DZ7RZS3.js → store-bulk-edit-I6QHGMEC.js} +1 -1
- package/dist/{store-edit-6KKEQZRH.js → store-edit-BBOEDZNV.js} +2 -2
- package/dist/{tax-region-create-GAXLHDV5.js → tax-region-create-7432IFN5.js} +1 -1
- package/dist/{tax-region-tax-override-create-XOBU6DOL.js → tax-region-tax-override-create-WRUNCP67.js} +2 -2
- package/dist/{tax-region-tax-override-edit-PEQJFCOU.js → tax-region-tax-override-edit-EOIDY4LX.js} +2 -2
- package/package.json +6 -6
|
@@ -158,6 +158,8 @@ import {
|
|
|
158
158
|
EllipsisHorizontal,
|
|
159
159
|
InformationCircleSolid,
|
|
160
160
|
Photo,
|
|
161
|
+
QueueList,
|
|
162
|
+
StackPerspective,
|
|
161
163
|
ThumbnailBadge,
|
|
162
164
|
Trash,
|
|
163
165
|
XMark as XMark2
|
|
@@ -288,7 +290,7 @@ var CategoryMediaItemMenu = ({
|
|
|
288
290
|
/* @__PURE__ */ jsx3(
|
|
289
291
|
MenuItemWithTooltip,
|
|
290
292
|
{
|
|
291
|
-
icon: /* @__PURE__ */ jsx3(
|
|
293
|
+
icon: /* @__PURE__ */ jsx3(StackPerspective, {}),
|
|
292
294
|
label: item.is_thumbnail ? t("categories.media.actions.removeThumbnail") : t("categories.media.actions.setThumbnail"),
|
|
293
295
|
tooltip: t("categories.media.tooltips.thumbnail"),
|
|
294
296
|
onClick: onToggleThumbnail
|
|
@@ -297,7 +299,7 @@ var CategoryMediaItemMenu = ({
|
|
|
297
299
|
/* @__PURE__ */ jsx3(
|
|
298
300
|
MenuItemWithTooltip,
|
|
299
301
|
{
|
|
300
|
-
icon: /* @__PURE__ */ jsx3(
|
|
302
|
+
icon: /* @__PURE__ */ jsx3(QueueList, {}),
|
|
301
303
|
label: item.is_banner ? t("categories.media.actions.removeBanner") : t("categories.media.actions.setBanner"),
|
|
302
304
|
tooltip: t("categories.media.tooltips.banner"),
|
|
303
305
|
onClick: onToggleBanner
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
PriceListRulesSchema,
|
|
7
7
|
usePriceListCurrencyData,
|
|
8
8
|
usePriceListGridColumns
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-OTXOV6YU.js";
|
|
10
10
|
import {
|
|
11
11
|
exctractPricesFromProducts,
|
|
12
12
|
isProductRow
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
} from "./chunk-FREUYHMS.js";
|
|
28
28
|
import {
|
|
29
29
|
DataGrid
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-4OCWOY2F.js";
|
|
31
31
|
import {
|
|
32
32
|
RouteFocusModal,
|
|
33
33
|
StackedFocusModal,
|
|
@@ -158,6 +158,8 @@ import {
|
|
|
158
158
|
EllipsisHorizontal,
|
|
159
159
|
InformationCircleSolid,
|
|
160
160
|
Photo,
|
|
161
|
+
QueueList,
|
|
162
|
+
StackPerspective,
|
|
161
163
|
ThumbnailBadge,
|
|
162
164
|
Trash,
|
|
163
165
|
XMark as XMark2
|
|
@@ -288,7 +290,7 @@ var CollectionMediaItemMenu = ({
|
|
|
288
290
|
/* @__PURE__ */ jsx3(
|
|
289
291
|
MenuItemWithTooltip,
|
|
290
292
|
{
|
|
291
|
-
icon: /* @__PURE__ */ jsx3(
|
|
293
|
+
icon: /* @__PURE__ */ jsx3(StackPerspective, {}),
|
|
292
294
|
label: item.is_thumbnail ? t("collections.media.actions.removeThumbnail") : t("collections.media.actions.setThumbnail"),
|
|
293
295
|
tooltip: t("collections.media.tooltips.thumbnail"),
|
|
294
296
|
onClick: onToggleThumbnail
|
|
@@ -297,7 +299,7 @@ var CollectionMediaItemMenu = ({
|
|
|
297
299
|
/* @__PURE__ */ jsx3(
|
|
298
300
|
MenuItemWithTooltip,
|
|
299
301
|
{
|
|
300
|
-
icon: /* @__PURE__ */ jsx3(
|
|
302
|
+
icon: /* @__PURE__ */ jsx3(QueueList, {}),
|
|
301
303
|
label: item.is_banner ? t("collections.media.actions.removeBanner") : t("collections.media.actions.setBanner"),
|
|
302
304
|
tooltip: t("collections.media.tooltips.banner"),
|
|
303
305
|
onClick: onToggleBanner
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
ShippingOptionPriceProvider,
|
|
5
5
|
buildShippingOptionPriceRules,
|
|
6
6
|
useShippingOptionPriceColumns
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-2MRYNLVT.js";
|
|
8
8
|
import {
|
|
9
9
|
CONDITIONAL_PRICES_STACKED_MODAL_ID,
|
|
10
10
|
ShippingOptionPriceType
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
} from "./chunk-2EME4AWX.js";
|
|
32
32
|
import {
|
|
33
33
|
DataGrid
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-4OCWOY2F.js";
|
|
35
35
|
import {
|
|
36
36
|
RouteFocusModal,
|
|
37
37
|
StackedFocusModal,
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-AJLGY3LQ.js";
|
|
4
4
|
import {
|
|
5
5
|
i18n
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6YEVK7JJ.js";
|
|
7
7
|
import {
|
|
8
8
|
require_dist
|
|
9
9
|
} from "./chunk-YZBEJ3CY.js";
|
|
@@ -220,7 +220,9 @@ var ProductCreateVariantSchema = z.object({
|
|
|
220
220
|
variant_rank: z.number()
|
|
221
221
|
});
|
|
222
222
|
var ProductCreateSchema = z.object({
|
|
223
|
-
title: z.string().min(1
|
|
223
|
+
title: z.string().min(1, {
|
|
224
|
+
message: i18n.t("products.create.errors.requiredTitle")
|
|
225
|
+
}),
|
|
224
226
|
subtitle: z.string().optional(),
|
|
225
227
|
handle: z.string().optional(),
|
|
226
228
|
description: z.string().optional(),
|
|
@@ -228,7 +230,7 @@ var ProductCreateSchema = z.object({
|
|
|
228
230
|
globally_available: z.boolean(),
|
|
229
231
|
type_id: z.string().optional(),
|
|
230
232
|
collection_id: z.string().optional(),
|
|
231
|
-
category_id: z.string().min(1),
|
|
233
|
+
category_id: z.string().min(1, i18n.t("products.create.errors.requiredCategory")),
|
|
232
234
|
seller_ids: z.array(z.string()).optional(),
|
|
233
235
|
tags: z.array(z.string()).optional(),
|
|
234
236
|
origin_country: z.string().optional(),
|
|
@@ -266,10 +268,18 @@ var ProductCreateSchema = z.object({
|
|
|
266
268
|
if (!attr.is_required) return;
|
|
267
269
|
const isEmpty = attr.values === void 0 || attr.values === "" || Array.isArray(attr.values) && attr.values.length === 0;
|
|
268
270
|
if (isEmpty) {
|
|
271
|
+
let messageKey = "products.create.errors.requiredAttribute";
|
|
272
|
+
if (attr.type === "single_select" || attr.type === "toggle") {
|
|
273
|
+
messageKey = "products.create.errors.requiredAttributeSelect";
|
|
274
|
+
} else if (attr.type === "multi_select") {
|
|
275
|
+
messageKey = "products.create.errors.requiredAttributeMultiSelect";
|
|
276
|
+
} else if (attr.type === "text" || attr.type === "unit") {
|
|
277
|
+
messageKey = "products.create.errors.requiredAttributeEnter";
|
|
278
|
+
}
|
|
269
279
|
ctx.addIssue({
|
|
270
280
|
code: z.ZodIssueCode.custom,
|
|
271
281
|
path: [`attributes.${index}.values`],
|
|
272
|
-
message: i18n.t(
|
|
282
|
+
message: i18n.t(messageKey)
|
|
273
283
|
});
|
|
274
284
|
}
|
|
275
285
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CollectionListPage
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-KUKBV4XN.js";
|
|
4
|
+
import "./chunk-5BSSIDW6.js";
|
|
5
5
|
import "./chunk-KOURHC2N.js";
|
|
6
6
|
import "./chunk-2ZFELO2L.js";
|
|
7
7
|
import "./chunk-26OOAKQ6.js";
|
|
@@ -9,7 +9,7 @@ import "./chunk-ZQZHFMD7.js";
|
|
|
9
9
|
import "./chunk-C4N5EJAD.js";
|
|
10
10
|
import "./chunk-OI4DJXUL.js";
|
|
11
11
|
import "./chunk-HGTPUAHD.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-VM56ZITS.js";
|
|
13
13
|
import "./chunk-S2WEYEQR.js";
|
|
14
14
|
import "./chunk-WKTRJNOK.js";
|
|
15
15
|
import "./chunk-MG4GKUJW.js";
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CommissionValueFields,
|
|
3
|
+
addCommissionValueIssues,
|
|
4
|
+
optionalAmount,
|
|
3
5
|
useStoreCurrencies
|
|
4
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CU4UVEHX.js";
|
|
5
7
|
import {
|
|
6
8
|
buildValuesPayload,
|
|
7
9
|
fixedValuesFromRate
|
|
@@ -39,6 +41,7 @@ import "./chunk-NBMM2TZK.js";
|
|
|
39
41
|
// src/pages/commissions/commission-rule-commission-edit/commission-rule-commission-edit.tsx
|
|
40
42
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
41
43
|
import { Button, Heading, toast } from "@medusajs/ui";
|
|
44
|
+
import { useMemo } from "react";
|
|
42
45
|
import { useForm } from "react-hook-form";
|
|
43
46
|
import { useTranslation } from "react-i18next";
|
|
44
47
|
import { useParams } from "react-router-dom";
|
|
@@ -46,11 +49,19 @@ import * as zod from "zod";
|
|
|
46
49
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
47
50
|
var EditCommissionSchema = zod.object({
|
|
48
51
|
type: zod.enum(["percentage", "fixed"]),
|
|
49
|
-
value:
|
|
50
|
-
fixed_values: zod.record(zod.string(),
|
|
52
|
+
value: optionalAmount,
|
|
53
|
+
fixed_values: zod.record(zod.string(), optionalAmount).optional(),
|
|
51
54
|
include_tax: zod.boolean(),
|
|
52
55
|
include_shipping: zod.boolean()
|
|
53
56
|
});
|
|
57
|
+
var createEditCommissionSchema = (currencies) => EditCommissionSchema.superRefine((data, ctx) => {
|
|
58
|
+
addCommissionValueIssues(ctx, {
|
|
59
|
+
type: data.type,
|
|
60
|
+
value: data.value,
|
|
61
|
+
fixedValues: data.fixed_values,
|
|
62
|
+
currencies
|
|
63
|
+
});
|
|
64
|
+
});
|
|
54
65
|
var EditCommissionForm = ({ rule }) => {
|
|
55
66
|
const { t } = useTranslation();
|
|
56
67
|
const { handleSuccess } = useRouteModal();
|
|
@@ -59,6 +70,10 @@ var EditCommissionForm = ({ rule }) => {
|
|
|
59
70
|
{ value: "percentage", label: t("commissions.fields.type.percentage") },
|
|
60
71
|
{ value: "fixed", label: t("commissions.fields.type.fixed") }
|
|
61
72
|
];
|
|
73
|
+
const resolver = useMemo(
|
|
74
|
+
() => zodResolver(createEditCommissionSchema(currencies)),
|
|
75
|
+
[currencies]
|
|
76
|
+
);
|
|
62
77
|
const form = useForm({
|
|
63
78
|
defaultValues: {
|
|
64
79
|
type: rule.type,
|
|
@@ -67,7 +82,7 @@ var EditCommissionForm = ({ rule }) => {
|
|
|
67
82
|
include_tax: rule.include_tax,
|
|
68
83
|
include_shipping: rule.include_shipping
|
|
69
84
|
},
|
|
70
|
-
resolver
|
|
85
|
+
resolver
|
|
71
86
|
});
|
|
72
87
|
const { mutateAsync, isPending } = useUpdateCommissionRule(rule.id);
|
|
73
88
|
const handleSubmit = form.handleSubmit(async (values) => {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CommissionValueFields,
|
|
3
|
+
addCommissionValueIssues,
|
|
4
|
+
optionalAmount,
|
|
3
5
|
useStoreCurrencies
|
|
4
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CU4UVEHX.js";
|
|
5
7
|
import "./chunk-QR3GYYX6.js";
|
|
6
8
|
import {
|
|
7
9
|
SCOPE_TYPE_DIMENSIONS,
|
|
@@ -323,13 +325,6 @@ CreateCommissionRuleDetails._tabMeta = defineTabMeta(
|
|
|
323
325
|
// src/pages/commissions/commission-rule-create/components/create-commission-rule-form/schema.ts
|
|
324
326
|
import i18n from "i18next";
|
|
325
327
|
import * as zod from "zod";
|
|
326
|
-
var optionalAmount = zod.preprocess((val) => {
|
|
327
|
-
if (val === "" || val === null || val === void 0) {
|
|
328
|
-
return void 0;
|
|
329
|
-
}
|
|
330
|
-
const parsed = typeof val === "number" ? val : Number(val);
|
|
331
|
-
return Number.isNaN(parsed) ? void 0 : parsed;
|
|
332
|
-
}, zod.number().optional());
|
|
333
328
|
var baseCommissionRuleSchema = zod.object({
|
|
334
329
|
title: zod.string().min(1, { message: i18n.t("commissions.validation.titleRequired") }),
|
|
335
330
|
code: zod.string().min(1, { message: i18n.t("commissions.validation.codeRequired") }),
|
|
@@ -372,26 +367,12 @@ var createCommissionRuleSchema = (currencies = []) => baseCommissionRuleSchema.s
|
|
|
372
367
|
message: i18n.t("commissions.validation.categoriesRequired")
|
|
373
368
|
});
|
|
374
369
|
}
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
});
|
|
382
|
-
}
|
|
383
|
-
} else {
|
|
384
|
-
currencies.forEach((code) => {
|
|
385
|
-
const amount = data.fixed_values?.[code];
|
|
386
|
-
if (amount === void 0 || Number.isNaN(amount)) {
|
|
387
|
-
ctx.addIssue({
|
|
388
|
-
code: zod.ZodIssueCode.custom,
|
|
389
|
-
path: ["fixed_values", code],
|
|
390
|
-
message: i18n.t("commissions.validation.value")
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
});
|
|
394
|
-
}
|
|
370
|
+
addCommissionValueIssues(ctx, {
|
|
371
|
+
type: data.commissionType,
|
|
372
|
+
value: data.value,
|
|
373
|
+
fixedValues: data.fixed_values,
|
|
374
|
+
currencies
|
|
375
|
+
});
|
|
395
376
|
});
|
|
396
377
|
|
|
397
378
|
// src/pages/commissions/commission-rule-create/components/create-commission-rule-form/create-commission-rule-form.tsx
|
|
@@ -49,7 +49,7 @@ import * as zod from "zod";
|
|
|
49
49
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
50
50
|
var EditCommissionRuleSchema = zod.object({
|
|
51
51
|
status: zod.enum(["active", "inactive"]),
|
|
52
|
-
name: zod.string().min(1),
|
|
52
|
+
name: zod.string().min(1, { message: i18n.t("commissions.validation.titleRequired") }),
|
|
53
53
|
code: zod.string().min(1, { message: i18n.t("commissions.validation.codeRequired") }),
|
|
54
54
|
scopeType: zod.enum([
|
|
55
55
|
"store",
|
|
@@ -61,6 +61,29 @@ var EditCommissionRuleSchema = zod.object({
|
|
|
61
61
|
stores: zod.array(zod.string()),
|
|
62
62
|
productTypes: zod.array(zod.string()),
|
|
63
63
|
categories: zod.array(zod.string())
|
|
64
|
+
}).superRefine((data, ctx) => {
|
|
65
|
+
const dimensions = SCOPE_TYPE_DIMENSIONS[data.scopeType];
|
|
66
|
+
if (dimensions.includes("seller") && data.stores.length === 0) {
|
|
67
|
+
ctx.addIssue({
|
|
68
|
+
code: zod.ZodIssueCode.custom,
|
|
69
|
+
path: ["stores"],
|
|
70
|
+
message: i18n.t("commissions.validation.storesRequired")
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
if (dimensions.includes("product_type") && data.productTypes.length === 0) {
|
|
74
|
+
ctx.addIssue({
|
|
75
|
+
code: zod.ZodIssueCode.custom,
|
|
76
|
+
path: ["productTypes"],
|
|
77
|
+
message: i18n.t("commissions.validation.productTypesRequired")
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
if (dimensions.includes("product_category") && data.categories.length === 0) {
|
|
81
|
+
ctx.addIssue({
|
|
82
|
+
code: zod.ZodIssueCode.custom,
|
|
83
|
+
path: ["categories"],
|
|
84
|
+
message: i18n.t("commissions.validation.categoriesRequired")
|
|
85
|
+
});
|
|
86
|
+
}
|
|
64
87
|
});
|
|
65
88
|
var EditCommissionRuleForm = ({ rule }) => {
|
|
66
89
|
const { t } = useTranslation();
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CommissionValueFields,
|
|
3
|
+
addCommissionValueIssues,
|
|
4
|
+
optionalAmount,
|
|
3
5
|
useStoreCurrencies
|
|
4
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CU4UVEHX.js";
|
|
5
7
|
import {
|
|
6
8
|
buildValuesPayload,
|
|
7
9
|
fixedValuesFromRate
|
|
@@ -40,6 +42,7 @@ import "./chunk-NBMM2TZK.js";
|
|
|
40
42
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
41
43
|
import { Button, Heading, Input, toast } from "@medusajs/ui";
|
|
42
44
|
import i18n from "i18next";
|
|
45
|
+
import { useMemo } from "react";
|
|
43
46
|
import { useForm } from "react-hook-form";
|
|
44
47
|
import { useTranslation } from "react-i18next";
|
|
45
48
|
import * as zod from "zod";
|
|
@@ -47,18 +50,18 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
47
50
|
var EditGlobalCommissionSchema = zod.object({
|
|
48
51
|
code: zod.string().min(1, { message: i18n.t("commissions.validation.codeRequired") }),
|
|
49
52
|
type: zod.enum(["percentage", "fixed"]),
|
|
50
|
-
value:
|
|
51
|
-
fixed_values: zod.record(zod.string(),
|
|
53
|
+
value: optionalAmount,
|
|
54
|
+
fixed_values: zod.record(zod.string(), optionalAmount).optional(),
|
|
52
55
|
include_tax: zod.boolean(),
|
|
53
56
|
include_shipping: zod.boolean()
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
57
|
+
});
|
|
58
|
+
var createEditGlobalCommissionSchema = (currencies) => EditGlobalCommissionSchema.superRefine((data, ctx) => {
|
|
59
|
+
addCommissionValueIssues(ctx, {
|
|
60
|
+
type: data.type,
|
|
61
|
+
value: data.value,
|
|
62
|
+
fixedValues: data.fixed_values,
|
|
63
|
+
currencies
|
|
64
|
+
});
|
|
62
65
|
});
|
|
63
66
|
var EditGlobalCommissionForm = ({ rate }) => {
|
|
64
67
|
const { t } = useTranslation();
|
|
@@ -68,6 +71,10 @@ var EditGlobalCommissionForm = ({ rate }) => {
|
|
|
68
71
|
{ value: "percentage", label: t("commissions.fields.type.percentage") },
|
|
69
72
|
{ value: "fixed", label: t("commissions.fields.type.fixed") }
|
|
70
73
|
];
|
|
74
|
+
const resolver = useMemo(
|
|
75
|
+
() => zodResolver(createEditGlobalCommissionSchema(currencies)),
|
|
76
|
+
[currencies]
|
|
77
|
+
);
|
|
71
78
|
const form = useForm({
|
|
72
79
|
defaultValues: {
|
|
73
80
|
code: rate.code,
|
|
@@ -77,7 +84,7 @@ var EditGlobalCommissionForm = ({ rate }) => {
|
|
|
77
84
|
include_tax: rate.include_tax,
|
|
78
85
|
include_shipping: rate.include_shipping
|
|
79
86
|
},
|
|
80
|
-
resolver
|
|
87
|
+
resolver
|
|
81
88
|
});
|
|
82
89
|
const { mutateAsync, isPending } = useUpdateCommissionRule(rate.id);
|
|
83
90
|
const handleSubmit = form.handleSubmit(async (values) => {
|