@mercurjs/admin 2.3.2-canary.0 → 2.3.2-canary.2
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-S4HKMFU7.js → add-campaign-promotions-DAJLAYTG.js} +3 -3
- package/dist/{api-key-management-list-AHXOCLBO.js → api-key-management-list-P4FQQKIV.js} +1 -1
- package/dist/{attribute-list-6ELFWDHO.js → attribute-list-PVC4KUYQ.js} +1 -1
- package/dist/{campaign-detail-WPTZDDD5.js → campaign-detail-V6RISO2Y.js} +4 -4
- package/dist/{campaign-list-7L2DGBHW.js → campaign-list-WFFH3VPJ.js} +1 -1
- package/dist/{category-list-3IL2MERS.js → category-list-RBFOTJFJ.js} +1 -1
- package/dist/{chunk-CR7TRBEB.js → chunk-2YEBREEY.js} +2 -1
- package/dist/chunk-4F6SHS7A.js +83 -0
- package/dist/{chunk-EAZ6YM6D.js → chunk-5SDHNLEC.js} +2 -1
- package/dist/{chunk-NKZLCOFU.js → chunk-6DBL7KIL.js} +1 -1
- package/dist/{chunk-ZBRRK3Y6.js → chunk-AB34V74P.js} +3 -2
- package/dist/{chunk-6ZVRNI5K.js → chunk-AMKTWSOZ.js} +1 -1
- package/dist/{chunk-7PGZV6DQ.js → chunk-BNYVXSFC.js} +1 -1
- package/dist/{chunk-H7HNJFQA.js → chunk-CGT2IRFI.js} +1 -1
- package/dist/{chunk-N3ZYLAGA.js → chunk-GQ45JPQR.js} +3 -2
- package/dist/{chunk-VKVK5D2F.js → chunk-GVKW5SUK.js} +3 -2
- package/dist/{chunk-UGDC6FPU.js → chunk-JIVTFB67.js} +2 -1
- package/dist/{chunk-23KZGNNG.js → chunk-KHMHTJZG.js} +2 -1
- package/dist/{chunk-NN6PSWE4.js → chunk-MUSHUJHY.js} +56 -1
- package/dist/{chunk-LAIT7Y53.js → chunk-NO64DRH4.js} +25 -7
- package/dist/{chunk-AJNXQUOR.js → chunk-O56RWFFI.js} +3 -2
- package/dist/{chunk-OJQSOFYG.js → chunk-PC5GU4HP.js} +2 -1
- package/dist/{chunk-6XJUYY6G.js → chunk-R3E7BMQB.js} +1 -1
- package/dist/{chunk-IP5YNQ5R.js → chunk-RQCYGC2H.js} +3 -2
- package/dist/{chunk-EF23N7II.js → chunk-S4W3RVQV.js} +3 -2
- package/dist/{chunk-HBNQ3R3P.js → chunk-T36KFL5R.js} +2 -1
- package/dist/{chunk-CMBHUF6P.js → chunk-T3KB4DCM.js} +4 -1
- package/dist/{chunk-N5IUYCUZ.js → chunk-UYQY4B7J.js} +4 -2
- package/dist/{chunk-LIMG2EY2.js → chunk-VB4A2G7A.js} +3 -2
- package/dist/{chunk-PB24YMA4.js → chunk-VYD6M7TF.js} +2 -1
- package/dist/{chunk-73N66XQD.js → chunk-WCA5Z4MT.js} +2 -1
- package/dist/{chunk-43SWJ765.js → chunk-XBEI6JKV.js} +2 -1
- package/dist/{chunk-7ZY7R6PG.js → chunk-XVBLVV7Y.js} +1 -1
- package/dist/{chunk-HFMAEJN2.js → chunk-Y5T5NATQ.js} +2 -1
- package/dist/{chunk-WYRUCSGW.js → chunk-YS6DRI7V.js} +2 -1
- package/dist/{collection-list-LM5SH67K.js → collection-list-C2EQXJTN.js} +2 -2
- package/dist/{commissions-list-X54FEOEZ.js → commissions-list-VBQOQF2D.js} +1 -1
- package/dist/{customer-group-list-KBZBSGTQ.js → customer-group-list-NZ3D2ZAR.js} +1 -1
- package/dist/{customer-list-IJJEZDOZ.js → customer-list-DFONJE23.js} +1 -1
- package/dist/index.css +3 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1529 -1296
- package/dist/{order-edit-billing-address-2BSCXUTK.js → order-edit-billing-address-ZT7HAEXB.js} +1 -1
- package/dist/{order-list-GQ5IOA6I.js → order-list-WGQC2X2L.js} +1 -1
- package/dist/pages/index.d.ts +22 -22
- package/dist/pages/index.js +28 -28
- package/dist/{price-list-list-JC5EDBH6.js → price-list-list-UEEYIP5R.js} +1 -1
- package/dist/{product-create-A7774JYE.js → product-create-LBKJTFOY.js} +3 -3
- package/dist/{product-list-2FOZLWYH.js → product-list-YHJ7DW6D.js} +1 -1
- package/dist/{product-media-ROKDXANO.js → product-media-NEAAG6IC.js} +2 -2
- package/dist/{product-organization-XS62HARL.js → product-organization-SVOLE5TG.js} +1 -1
- package/dist/{product-tag-detail-7P7MI52E.js → product-tag-detail-2YR6TXZI.js} +1 -1
- package/dist/{product-tag-list-43NFD36I.js → product-tag-list-GDIVZYEB.js} +2 -2
- package/dist/{product-type-list-NNNFCCWS.js → product-type-list-VSCQHI3D.js} +1 -1
- package/dist/{promotion-detail-4WNHEOG4.js → promotion-detail-HVQKXMJL.js} +3 -3
- package/dist/{promotion-list-AJ5NBDZ2.js → promotion-list-KB2E4AEZ.js} +4 -4
- package/dist/{refund-reason-list-R573DHM7.js → refund-reason-list-ODOF3ZLM.js} +1 -1
- package/dist/{reservation-list-CRPRHIMT.js → reservation-list-APKRLKOF.js} +1 -1
- package/dist/{reset-password-7G75C4RO.js → reset-password-BIAORJOF.js} +1 -1
- package/dist/{return-reason-list-A2RABTGP.js → return-reason-list-IQ2JGNEN.js} +2 -2
- package/dist/{shipping-option-type-list-R4JPQOAA.js → shipping-option-type-list-VQ5UVOUU.js} +1 -1
- package/dist/{shipping-profiles-list-UKD47NUF.js → shipping-profiles-list-AK6KXUGF.js} +1 -1
- package/dist/{store-details-GOVF3KFW.js → store-details-KI5D4VSI.js} +1 -1
- package/dist/{store-edit-W6NHNE3S.js → store-edit-LXGZTR3G.js} +2 -2
- package/dist/{store-list-OKKZA7VO.js → store-list-XXRF6JAZ.js} +2 -2
- package/dist/{tax-region-create-P4IKQNTU.js → tax-region-create-SFRD4AJB.js} +1 -1
- package/dist/{tax-region-list-JC4QYF5B.js → tax-region-list-TM23Q4HH.js} +1 -1
- package/dist/{tax-region-tax-override-create-7O3KDBUJ.js → tax-region-tax-override-create-XZ5BU2FP.js} +1 -1
- package/dist/{tax-region-tax-override-edit-SUL5VZ5D.js → tax-region-tax-override-edit-R4EGIUIZ.js} +1 -1
- package/dist/{user-invite-WG57KWD3.js → user-invite-A7TBRKWI.js} +127 -27
- package/dist/{user-list-P7JCBIOR.js → user-list-ECF647TZ.js} +1 -1
- package/package.json +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
StoreListPage
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JIVTFB67.js";
|
|
4
4
|
import "./chunk-KOURHC2N.js";
|
|
5
5
|
import "./chunk-2ZFELO2L.js";
|
|
6
6
|
import "./chunk-26OOAKQ6.js";
|
|
@@ -13,7 +13,7 @@ import "./chunk-ANDTD5VV.js";
|
|
|
13
13
|
import "./chunk-MG4GKUJW.js";
|
|
14
14
|
import "./chunk-AYVH6Q5O.js";
|
|
15
15
|
import "./chunk-VOHEQ7B5.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-UYQY4B7J.js";
|
|
17
17
|
import "./chunk-7SVLKK6Q.js";
|
|
18
18
|
import "./chunk-GR6JUIRU.js";
|
|
19
19
|
import "./chunk-GRH7C3QN.js";
|
|
@@ -36,7 +36,7 @@ import "./chunk-ANDTD5VV.js";
|
|
|
36
36
|
import "./chunk-MG4GKUJW.js";
|
|
37
37
|
import "./chunk-AYVH6Q5O.js";
|
|
38
38
|
import "./chunk-VOHEQ7B5.js";
|
|
39
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-UYQY4B7J.js";
|
|
40
40
|
import "./chunk-7SVLKK6Q.js";
|
|
41
41
|
import "./chunk-GR6JUIRU.js";
|
|
42
42
|
import "./chunk-GRH7C3QN.js";
|
package/dist/{tax-region-tax-override-edit-SUL5VZ5D.js → tax-region-tax-override-edit-R4EGIUIZ.js}
RENAMED
|
@@ -36,7 +36,7 @@ import "./chunk-ANDTD5VV.js";
|
|
|
36
36
|
import "./chunk-MG4GKUJW.js";
|
|
37
37
|
import "./chunk-AYVH6Q5O.js";
|
|
38
38
|
import "./chunk-VOHEQ7B5.js";
|
|
39
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-UYQY4B7J.js";
|
|
40
40
|
import "./chunk-7SVLKK6Q.js";
|
|
41
41
|
import "./chunk-GR6JUIRU.js";
|
|
42
42
|
import "./chunk-GRH7C3QN.js";
|
|
@@ -1,9 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useFeatureFlag,
|
|
3
|
+
useRbacAssignableRoles
|
|
4
|
+
} from "./chunk-4F6SHS7A.js";
|
|
1
5
|
import {
|
|
2
6
|
isFetchError
|
|
3
7
|
} from "./chunk-C6SUTRP2.js";
|
|
8
|
+
import {
|
|
9
|
+
ListSummary
|
|
10
|
+
} from "./chunk-4F5GP7J7.js";
|
|
4
11
|
import {
|
|
5
12
|
useUserInviteTableQuery
|
|
6
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-UYQY4B7J.js";
|
|
14
|
+
import {
|
|
15
|
+
Combobox
|
|
16
|
+
} from "./chunk-SR3DYN52.js";
|
|
7
17
|
import {
|
|
8
18
|
KeyboundForm
|
|
9
19
|
} from "./chunk-SITRHMZZ.js";
|
|
@@ -62,9 +72,11 @@ import { useMemo } from "react";
|
|
|
62
72
|
import { useForm } from "react-hook-form";
|
|
63
73
|
import { Trans, useTranslation } from "react-i18next";
|
|
64
74
|
import * as zod from "zod";
|
|
75
|
+
import { usePermissions } from "@mercurjs/dashboard-shared";
|
|
65
76
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
66
77
|
var InviteUserSchema = zod.object({
|
|
67
|
-
email: zod.string().email()
|
|
78
|
+
email: zod.string().email(),
|
|
79
|
+
roles: zod.array(zod.string()).optional()
|
|
68
80
|
});
|
|
69
81
|
var PAGE_SIZE = 10;
|
|
70
82
|
var PREFIX = "usr_invite";
|
|
@@ -79,15 +91,47 @@ var getBaseUrl = () => {
|
|
|
79
91
|
var INVITE_URL = `${window.location.origin}${getBaseUrl()}/invite?token=`;
|
|
80
92
|
var InviteUserForm = () => {
|
|
81
93
|
const { t } = useTranslation();
|
|
94
|
+
const isRbacEnabled = useFeatureFlag("rbac");
|
|
95
|
+
const { hasPermission } = usePermissions();
|
|
96
|
+
const canReadRbacRoles = hasPermission("rbac_role:read");
|
|
97
|
+
const showRbacRolesField = isRbacEnabled && canReadRbacRoles;
|
|
82
98
|
const form = useForm({
|
|
83
99
|
defaultValues: {
|
|
84
|
-
email: ""
|
|
100
|
+
email: "",
|
|
101
|
+
roles: []
|
|
85
102
|
},
|
|
86
103
|
resolver: zodResolver(InviteUserSchema)
|
|
87
104
|
});
|
|
105
|
+
const { data: assignableData, isPending: isRolesLoading } = useRbacAssignableRoles(
|
|
106
|
+
{ limit: 200, order: "name" },
|
|
107
|
+
{ enabled: showRbacRolesField }
|
|
108
|
+
);
|
|
109
|
+
const roleOptions = useMemo(() => {
|
|
110
|
+
return (assignableData?.roles ?? []).map((role) => ({
|
|
111
|
+
label: role.name,
|
|
112
|
+
value: role.id
|
|
113
|
+
}));
|
|
114
|
+
}, [assignableData?.roles]);
|
|
115
|
+
const inviteFields = useMemo(() => {
|
|
116
|
+
if (!showRbacRolesField) {
|
|
117
|
+
return void 0;
|
|
118
|
+
}
|
|
119
|
+
return [
|
|
120
|
+
"id",
|
|
121
|
+
"email",
|
|
122
|
+
"accepted",
|
|
123
|
+
"token",
|
|
124
|
+
"expires_at",
|
|
125
|
+
"created_at",
|
|
126
|
+
"updated_at",
|
|
127
|
+
"rbac_roles.id",
|
|
128
|
+
"rbac_roles.name"
|
|
129
|
+
].join(",");
|
|
130
|
+
}, [showRbacRolesField]);
|
|
88
131
|
const { raw, searchParams } = useUserInviteTableQuery({
|
|
89
132
|
prefix: PREFIX,
|
|
90
|
-
pageSize: PAGE_SIZE
|
|
133
|
+
pageSize: PAGE_SIZE,
|
|
134
|
+
fields: inviteFields
|
|
91
135
|
});
|
|
92
136
|
const {
|
|
93
137
|
invites,
|
|
@@ -96,7 +140,7 @@ var InviteUserForm = () => {
|
|
|
96
140
|
isError,
|
|
97
141
|
error
|
|
98
142
|
} = useInvites(searchParams);
|
|
99
|
-
const columns = useColumns();
|
|
143
|
+
const columns = useColumns({ isRbacEnabled: showRbacRolesField });
|
|
100
144
|
const { table } = useDataTable({
|
|
101
145
|
data: invites ?? [],
|
|
102
146
|
columns,
|
|
@@ -109,7 +153,13 @@ var InviteUserForm = () => {
|
|
|
109
153
|
const { mutateAsync, isPending } = useCreateInvite();
|
|
110
154
|
const handleSubmit = form.handleSubmit(async (values) => {
|
|
111
155
|
try {
|
|
112
|
-
|
|
156
|
+
const payload = {
|
|
157
|
+
email: values.email
|
|
158
|
+
};
|
|
159
|
+
if (showRbacRolesField && values.roles?.length) {
|
|
160
|
+
payload.roles = values.roles;
|
|
161
|
+
}
|
|
162
|
+
await mutateAsync(payload);
|
|
113
163
|
form.reset();
|
|
114
164
|
} catch (error2) {
|
|
115
165
|
if (isFetchError(error2) && error2.status === 400) {
|
|
@@ -165,26 +215,63 @@ var InviteUserForm = () => {
|
|
|
165
215
|
className: "flex flex-col gap-y-4",
|
|
166
216
|
"data-testid": "user-invite-form-email-section",
|
|
167
217
|
children: [
|
|
168
|
-
/* @__PURE__ */
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
/* @__PURE__ */
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
218
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
219
|
+
/* @__PURE__ */ jsx(
|
|
220
|
+
Form.Field,
|
|
221
|
+
{
|
|
222
|
+
control: form.control,
|
|
223
|
+
name: "email",
|
|
224
|
+
render: ({ field }) => {
|
|
225
|
+
return /* @__PURE__ */ jsxs(Form.Item, { "data-testid": "user-invite-form-email-item", children: [
|
|
226
|
+
/* @__PURE__ */ jsx(Form.Label, { "data-testid": "user-invite-form-email-label", children: t("fields.email") }),
|
|
227
|
+
/* @__PURE__ */ jsx(Form.Control, { "data-testid": "user-invite-form-email-control", children: /* @__PURE__ */ jsx(
|
|
228
|
+
Input,
|
|
229
|
+
{
|
|
230
|
+
...field,
|
|
231
|
+
"data-testid": "user-invite-form-email-input"
|
|
232
|
+
}
|
|
233
|
+
) }),
|
|
234
|
+
/* @__PURE__ */ jsx(Form.ErrorMessage, { "data-testid": "user-invite-form-email-error" })
|
|
235
|
+
] });
|
|
236
|
+
}
|
|
185
237
|
}
|
|
186
|
-
|
|
187
|
-
|
|
238
|
+
),
|
|
239
|
+
showRbacRolesField && /* @__PURE__ */ jsx(
|
|
240
|
+
Form.Field,
|
|
241
|
+
{
|
|
242
|
+
control: form.control,
|
|
243
|
+
name: "roles",
|
|
244
|
+
render: ({ field }) => {
|
|
245
|
+
return /* @__PURE__ */ jsxs(Form.Item, { "data-testid": "user-invite-form-roles-item", children: [
|
|
246
|
+
/* @__PURE__ */ jsx(
|
|
247
|
+
Form.Label,
|
|
248
|
+
{
|
|
249
|
+
optional: true,
|
|
250
|
+
tooltip: t("users.inviteRolesTooltip"),
|
|
251
|
+
"data-testid": "user-invite-form-roles-label",
|
|
252
|
+
children: t("roles.domain")
|
|
253
|
+
}
|
|
254
|
+
),
|
|
255
|
+
/* @__PURE__ */ jsx(Form.Control, { "data-testid": "user-invite-form-roles-control", children: /* @__PURE__ */ jsx(
|
|
256
|
+
Combobox,
|
|
257
|
+
{
|
|
258
|
+
...field,
|
|
259
|
+
value: field.value ?? [],
|
|
260
|
+
onChange: (value) => {
|
|
261
|
+
field.onChange(value ?? []);
|
|
262
|
+
},
|
|
263
|
+
options: roleOptions,
|
|
264
|
+
placeholder: t("labels.selectValues"),
|
|
265
|
+
disabled: isRolesLoading,
|
|
266
|
+
"data-testid": "user-invite-form-roles-input"
|
|
267
|
+
}
|
|
268
|
+
) }),
|
|
269
|
+
/* @__PURE__ */ jsx(Form.ErrorMessage, { "data-testid": "user-invite-form-roles-error" })
|
|
270
|
+
] });
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
)
|
|
274
|
+
] }),
|
|
188
275
|
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-end", children: /* @__PURE__ */ jsx(
|
|
189
276
|
Button,
|
|
190
277
|
{
|
|
@@ -306,7 +393,7 @@ var InviteActions = ({ invite }) => {
|
|
|
306
393
|
);
|
|
307
394
|
};
|
|
308
395
|
var columnHelper = createColumnHelper();
|
|
309
|
-
var useColumns = () => {
|
|
396
|
+
var useColumns = ({ isRbacEnabled }) => {
|
|
310
397
|
const { t } = useTranslation();
|
|
311
398
|
return useMemo(
|
|
312
399
|
() => [
|
|
@@ -316,6 +403,19 @@ var useColumns = () => {
|
|
|
316
403
|
return getValue();
|
|
317
404
|
}
|
|
318
405
|
}),
|
|
406
|
+
...isRbacEnabled ? [
|
|
407
|
+
columnHelper.display({
|
|
408
|
+
id: "roles",
|
|
409
|
+
header: t("roles.domain"),
|
|
410
|
+
cell: ({ row }) => {
|
|
411
|
+
const roleNames = row.original.rbac_roles?.map((role) => role.name) ?? [];
|
|
412
|
+
if (!roleNames.length) {
|
|
413
|
+
return /* @__PURE__ */ jsx(Text, { size: "small", className: "text-ui-fg-subtle", children: "-" });
|
|
414
|
+
}
|
|
415
|
+
return /* @__PURE__ */ jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsx(ListSummary, { inline: true, n: 1, list: roleNames }) });
|
|
416
|
+
}
|
|
417
|
+
})
|
|
418
|
+
] : [],
|
|
319
419
|
columnHelper.accessor("accepted", {
|
|
320
420
|
header: t("fields.status"),
|
|
321
421
|
cell: ({ getValue, row }) => {
|
|
@@ -382,7 +482,7 @@ var useColumns = () => {
|
|
|
382
482
|
cell: ({ row }) => /* @__PURE__ */ jsx(InviteActions, { invite: row.original })
|
|
383
483
|
})
|
|
384
484
|
],
|
|
385
|
-
[t]
|
|
485
|
+
[t, isRbacEnabled]
|
|
386
486
|
);
|
|
387
487
|
};
|
|
388
488
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mercurjs/admin",
|
|
3
|
-
"version": "2.3.2-canary.
|
|
3
|
+
"version": "2.3.2-canary.2",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/mercurjs/mercur",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"lint": "oxlint --max-warnings 0"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@mercurjs/dashboard-shared": "2.3.2-canary.
|
|
38
|
-
"@mercurjs/client": "2.3.2-canary.
|
|
37
|
+
"@mercurjs/dashboard-shared": "2.3.2-canary.2",
|
|
38
|
+
"@mercurjs/client": "2.3.2-canary.2",
|
|
39
39
|
"@ariakit/react": "^0.4.15",
|
|
40
40
|
"@babel/runtime": "^8.0.0",
|
|
41
41
|
"@dnd-kit/core": "^6.1.0",
|
|
@@ -88,8 +88,8 @@
|
|
|
88
88
|
"tsup": "^8.0.2",
|
|
89
89
|
"typescript": "5.9.3",
|
|
90
90
|
"@medusajs/types": "2.18.0",
|
|
91
|
-
"@mercurjs/core": "2.3.2-canary.
|
|
92
|
-
"@mercurjs/dashboard-sdk": "2.3.2-canary.
|
|
93
|
-
"@mercurjs/types": "2.3.2-canary.
|
|
91
|
+
"@mercurjs/core": "2.3.2-canary.2",
|
|
92
|
+
"@mercurjs/dashboard-sdk": "2.3.2-canary.2",
|
|
93
|
+
"@mercurjs/types": "2.3.2-canary.2"
|
|
94
94
|
}
|
|
95
95
|
}
|