@inspirer-dev/crm-dashboard 1.0.5 → 1.0.7
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.
|
@@ -20,6 +20,16 @@ import {
|
|
|
20
20
|
} from '@strapi/design-system';
|
|
21
21
|
import { Layouts } from '@strapi/admin/strapi-admin';
|
|
22
22
|
|
|
23
|
+
const getBackendUrl = (): string => {
|
|
24
|
+
const raw = process.env.STRAPI_ADMIN_BACKEND_URL || 'http://localhost:3100';
|
|
25
|
+
|
|
26
|
+
if (!/^https?:\/\//i.test(raw)) {
|
|
27
|
+
return 'http://localhost:3100';
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return raw.endsWith('/') ? raw.slice(0, -1) : raw;
|
|
31
|
+
};
|
|
32
|
+
|
|
23
33
|
interface CrmLog {
|
|
24
34
|
timestamp: string;
|
|
25
35
|
user_id: string;
|
|
@@ -61,8 +71,8 @@ const LogsTable: React.FC = () => {
|
|
|
61
71
|
if (filterUserId) params.set('userId', filterUserId);
|
|
62
72
|
if (filterStatus) params.set('status', filterStatus);
|
|
63
73
|
|
|
64
|
-
const backendUrl =
|
|
65
|
-
const res = await fetch(
|
|
74
|
+
const backendUrl = getBackendUrl();
|
|
75
|
+
const res = await fetch(new URL(`/crm/logs?${params}`, backendUrl).toString());
|
|
66
76
|
if (res.ok) {
|
|
67
77
|
const data = await res.json();
|
|
68
78
|
setLogs(data.data || []);
|
|
@@ -111,7 +121,7 @@ const LogsTable: React.FC = () => {
|
|
|
111
121
|
<SingleSelect
|
|
112
122
|
placeholder="Status"
|
|
113
123
|
value={filterStatus}
|
|
114
|
-
onChange={(val: string) => setFilterStatus(val)}
|
|
124
|
+
onChange={(val: string | number) => setFilterStatus(String(val))}
|
|
115
125
|
onClear={() => setFilterStatus('')}
|
|
116
126
|
>
|
|
117
127
|
<SingleSelectOption value="">All</SingleSelectOption>
|
|
@@ -224,8 +234,10 @@ const AntiSpamLogsTable: React.FC = () => {
|
|
|
224
234
|
pageSize: '20',
|
|
225
235
|
});
|
|
226
236
|
|
|
227
|
-
const backendUrl =
|
|
228
|
-
const res = await fetch(
|
|
237
|
+
const backendUrl = getBackendUrl();
|
|
238
|
+
const res = await fetch(
|
|
239
|
+
new URL(`/crm/anti-spam-logs?${params}`, backendUrl).toString(),
|
|
240
|
+
);
|
|
229
241
|
if (res.ok) {
|
|
230
242
|
const data = await res.json();
|
|
231
243
|
setLogs(data.data || []);
|
|
@@ -355,8 +367,8 @@ const StatsView: React.FC = () => {
|
|
|
355
367
|
const fetchStats = useCallback(async () => {
|
|
356
368
|
setLoading(true);
|
|
357
369
|
try {
|
|
358
|
-
const backendUrl =
|
|
359
|
-
const res = await fetch(
|
|
370
|
+
const backendUrl = getBackendUrl();
|
|
371
|
+
const res = await fetch(new URL('/crm/stats', backendUrl).toString());
|
|
360
372
|
if (res.ok) {
|
|
361
373
|
const data = await res.json();
|
|
362
374
|
setStats(Array.isArray(data) ? data : []);
|
|
@@ -5034,7 +5034,7 @@ var objectInspect = function inspect_(obj, options, depth, seen) {
|
|
|
5034
5034
|
var ys = arrObjKeys(obj, inspect2);
|
|
5035
5035
|
var isPlainObject2 = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
|
|
5036
5036
|
var protoTag = obj instanceof Object ? "" : "null prototype";
|
|
5037
|
-
var stringTag2 = !isPlainObject2 && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : "";
|
|
5037
|
+
var stringTag2 = !isPlainObject2 && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr$1(obj), 8, -1) : protoTag ? "Object" : "";
|
|
5038
5038
|
var constructorTag = isPlainObject2 || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : "";
|
|
5039
5039
|
var tag = constructorTag + (stringTag2 || protoTag ? "[" + $join.call($concat$1.call([], stringTag2 || [], protoTag || []), ": ") + "] " : "");
|
|
5040
5040
|
if (ys.length === 0) {
|
|
@@ -5059,25 +5059,25 @@ function canTrustToString(obj) {
|
|
|
5059
5059
|
return !toStringTag || !(typeof obj === "object" && (toStringTag in obj || typeof obj[toStringTag] !== "undefined"));
|
|
5060
5060
|
}
|
|
5061
5061
|
function isArray$8(obj) {
|
|
5062
|
-
return toStr(obj) === "[object Array]" && canTrustToString(obj);
|
|
5062
|
+
return toStr$1(obj) === "[object Array]" && canTrustToString(obj);
|
|
5063
5063
|
}
|
|
5064
5064
|
function isDate$1(obj) {
|
|
5065
|
-
return toStr(obj) === "[object Date]" && canTrustToString(obj);
|
|
5065
|
+
return toStr$1(obj) === "[object Date]" && canTrustToString(obj);
|
|
5066
5066
|
}
|
|
5067
5067
|
function isRegExp$1(obj) {
|
|
5068
|
-
return toStr(obj) === "[object RegExp]" && canTrustToString(obj);
|
|
5068
|
+
return toStr$1(obj) === "[object RegExp]" && canTrustToString(obj);
|
|
5069
5069
|
}
|
|
5070
5070
|
function isError$1(obj) {
|
|
5071
|
-
return toStr(obj) === "[object Error]" && canTrustToString(obj);
|
|
5071
|
+
return toStr$1(obj) === "[object Error]" && canTrustToString(obj);
|
|
5072
5072
|
}
|
|
5073
5073
|
function isString(obj) {
|
|
5074
|
-
return toStr(obj) === "[object String]" && canTrustToString(obj);
|
|
5074
|
+
return toStr$1(obj) === "[object String]" && canTrustToString(obj);
|
|
5075
5075
|
}
|
|
5076
5076
|
function isNumber(obj) {
|
|
5077
|
-
return toStr(obj) === "[object Number]" && canTrustToString(obj);
|
|
5077
|
+
return toStr$1(obj) === "[object Number]" && canTrustToString(obj);
|
|
5078
5078
|
}
|
|
5079
5079
|
function isBoolean(obj) {
|
|
5080
|
-
return toStr(obj) === "[object Boolean]" && canTrustToString(obj);
|
|
5080
|
+
return toStr$1(obj) === "[object Boolean]" && canTrustToString(obj);
|
|
5081
5081
|
}
|
|
5082
5082
|
function isSymbol$2(obj) {
|
|
5083
5083
|
if (hasShammedSymbols) {
|
|
@@ -5113,7 +5113,7 @@ var hasOwn$1 = Object.prototype.hasOwnProperty || function(key) {
|
|
|
5113
5113
|
function has$5(obj, key) {
|
|
5114
5114
|
return hasOwn$1.call(obj, key);
|
|
5115
5115
|
}
|
|
5116
|
-
function toStr(obj) {
|
|
5116
|
+
function toStr$1(obj) {
|
|
5117
5117
|
return objectToString.call(obj);
|
|
5118
5118
|
}
|
|
5119
5119
|
function nameOf(f2) {
|
|
@@ -5422,7 +5422,7 @@ var syntax = SyntaxError;
|
|
|
5422
5422
|
var uri = URIError;
|
|
5423
5423
|
var abs$1 = Math.abs;
|
|
5424
5424
|
var floor$1 = Math.floor;
|
|
5425
|
-
var max$
|
|
5425
|
+
var max$2 = Math.max;
|
|
5426
5426
|
var min$1 = Math.min;
|
|
5427
5427
|
var pow$1 = Math.pow;
|
|
5428
5428
|
var round$1 = Math.round;
|
|
@@ -5551,99 +5551,78 @@ function requireObject_getPrototypeOf() {
|
|
|
5551
5551
|
Object_getPrototypeOf = $Object2.getPrototypeOf || null;
|
|
5552
5552
|
return Object_getPrototypeOf;
|
|
5553
5553
|
}
|
|
5554
|
-
var
|
|
5555
|
-
var
|
|
5556
|
-
|
|
5557
|
-
|
|
5558
|
-
|
|
5559
|
-
var
|
|
5560
|
-
var
|
|
5561
|
-
|
|
5562
|
-
|
|
5563
|
-
var
|
|
5564
|
-
|
|
5565
|
-
|
|
5566
|
-
|
|
5567
|
-
|
|
5568
|
-
|
|
5569
|
-
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
}
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
|
|
5576
|
-
|
|
5554
|
+
var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
|
|
5555
|
+
var toStr = Object.prototype.toString;
|
|
5556
|
+
var max$1 = Math.max;
|
|
5557
|
+
var funcType = "[object Function]";
|
|
5558
|
+
var concatty = function concatty2(a2, b2) {
|
|
5559
|
+
var arr = [];
|
|
5560
|
+
for (var i2 = 0; i2 < a2.length; i2 += 1) {
|
|
5561
|
+
arr[i2] = a2[i2];
|
|
5562
|
+
}
|
|
5563
|
+
for (var j2 = 0; j2 < b2.length; j2 += 1) {
|
|
5564
|
+
arr[j2 + a2.length] = b2[j2];
|
|
5565
|
+
}
|
|
5566
|
+
return arr;
|
|
5567
|
+
};
|
|
5568
|
+
var slicy = function slicy2(arrLike, offset) {
|
|
5569
|
+
var arr = [];
|
|
5570
|
+
for (var i2 = offset, j2 = 0; i2 < arrLike.length; i2 += 1, j2 += 1) {
|
|
5571
|
+
arr[j2] = arrLike[i2];
|
|
5572
|
+
}
|
|
5573
|
+
return arr;
|
|
5574
|
+
};
|
|
5575
|
+
var joiny = function(arr, joiner) {
|
|
5576
|
+
var str = "";
|
|
5577
|
+
for (var i2 = 0; i2 < arr.length; i2 += 1) {
|
|
5578
|
+
str += arr[i2];
|
|
5579
|
+
if (i2 + 1 < arr.length) {
|
|
5580
|
+
str += joiner;
|
|
5577
5581
|
}
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
5585
|
-
|
|
5582
|
+
}
|
|
5583
|
+
return str;
|
|
5584
|
+
};
|
|
5585
|
+
var implementation$1 = function bind(that) {
|
|
5586
|
+
var target = this;
|
|
5587
|
+
if (typeof target !== "function" || toStr.apply(target) !== funcType) {
|
|
5588
|
+
throw new TypeError(ERROR_MESSAGE + target);
|
|
5589
|
+
}
|
|
5590
|
+
var args = slicy(arguments, 1);
|
|
5591
|
+
var bound;
|
|
5592
|
+
var binder = function() {
|
|
5593
|
+
if (this instanceof bound) {
|
|
5594
|
+
var result = target.apply(
|
|
5595
|
+
this,
|
|
5596
|
+
concatty(args, arguments)
|
|
5597
|
+
);
|
|
5598
|
+
if (Object(result) === result) {
|
|
5599
|
+
return result;
|
|
5586
5600
|
}
|
|
5601
|
+
return this;
|
|
5587
5602
|
}
|
|
5588
|
-
return
|
|
5603
|
+
return target.apply(
|
|
5604
|
+
that,
|
|
5605
|
+
concatty(args, arguments)
|
|
5606
|
+
);
|
|
5589
5607
|
};
|
|
5590
|
-
|
|
5591
|
-
|
|
5592
|
-
|
|
5593
|
-
|
|
5594
|
-
|
|
5595
|
-
|
|
5596
|
-
|
|
5597
|
-
var
|
|
5598
|
-
if (this instanceof bound) {
|
|
5599
|
-
var result = target.apply(
|
|
5600
|
-
this,
|
|
5601
|
-
concatty(args, arguments)
|
|
5602
|
-
);
|
|
5603
|
-
if (Object(result) === result) {
|
|
5604
|
-
return result;
|
|
5605
|
-
}
|
|
5606
|
-
return this;
|
|
5607
|
-
}
|
|
5608
|
-
return target.apply(
|
|
5609
|
-
that,
|
|
5610
|
-
concatty(args, arguments)
|
|
5611
|
-
);
|
|
5608
|
+
var boundLength = max$1(0, target.length - args.length);
|
|
5609
|
+
var boundArgs = [];
|
|
5610
|
+
for (var i2 = 0; i2 < boundLength; i2++) {
|
|
5611
|
+
boundArgs[i2] = "$" + i2;
|
|
5612
|
+
}
|
|
5613
|
+
bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder);
|
|
5614
|
+
if (target.prototype) {
|
|
5615
|
+
var Empty = function Empty2() {
|
|
5612
5616
|
};
|
|
5613
|
-
|
|
5614
|
-
|
|
5615
|
-
|
|
5616
|
-
|
|
5617
|
-
|
|
5618
|
-
|
|
5619
|
-
|
|
5620
|
-
|
|
5621
|
-
|
|
5622
|
-
Empty.prototype = target.prototype;
|
|
5623
|
-
bound.prototype = new Empty();
|
|
5624
|
-
Empty.prototype = null;
|
|
5625
|
-
}
|
|
5626
|
-
return bound;
|
|
5627
|
-
};
|
|
5628
|
-
return implementation;
|
|
5629
|
-
}
|
|
5630
|
-
var functionBind;
|
|
5631
|
-
var hasRequiredFunctionBind;
|
|
5632
|
-
function requireFunctionBind() {
|
|
5633
|
-
if (hasRequiredFunctionBind) return functionBind;
|
|
5634
|
-
hasRequiredFunctionBind = 1;
|
|
5635
|
-
var implementation2 = requireImplementation();
|
|
5636
|
-
functionBind = Function.prototype.bind || implementation2;
|
|
5637
|
-
return functionBind;
|
|
5638
|
-
}
|
|
5639
|
-
var functionCall;
|
|
5640
|
-
var hasRequiredFunctionCall;
|
|
5641
|
-
function requireFunctionCall() {
|
|
5642
|
-
if (hasRequiredFunctionCall) return functionCall;
|
|
5643
|
-
hasRequiredFunctionCall = 1;
|
|
5644
|
-
functionCall = Function.prototype.call;
|
|
5645
|
-
return functionCall;
|
|
5646
|
-
}
|
|
5617
|
+
Empty.prototype = target.prototype;
|
|
5618
|
+
bound.prototype = new Empty();
|
|
5619
|
+
Empty.prototype = null;
|
|
5620
|
+
}
|
|
5621
|
+
return bound;
|
|
5622
|
+
};
|
|
5623
|
+
var implementation = implementation$1;
|
|
5624
|
+
var functionBind = Function.prototype.bind || implementation;
|
|
5625
|
+
var functionCall = Function.prototype.call;
|
|
5647
5626
|
var functionApply;
|
|
5648
5627
|
var hasRequiredFunctionApply;
|
|
5649
5628
|
function requireFunctionApply() {
|
|
@@ -5653,14 +5632,14 @@ function requireFunctionApply() {
|
|
|
5653
5632
|
return functionApply;
|
|
5654
5633
|
}
|
|
5655
5634
|
var reflectApply = typeof Reflect !== "undefined" && Reflect && Reflect.apply;
|
|
5656
|
-
var bind$2 =
|
|
5635
|
+
var bind$2 = functionBind;
|
|
5657
5636
|
var $apply$1 = requireFunctionApply();
|
|
5658
|
-
var $call$2 =
|
|
5637
|
+
var $call$2 = functionCall;
|
|
5659
5638
|
var $reflectApply = reflectApply;
|
|
5660
5639
|
var actualApply = $reflectApply || bind$2.call($call$2, $apply$1);
|
|
5661
|
-
var bind$1 =
|
|
5640
|
+
var bind$1 = functionBind;
|
|
5662
5641
|
var $TypeError$4 = type;
|
|
5663
|
-
var $call$1 =
|
|
5642
|
+
var $call$1 = functionCall;
|
|
5664
5643
|
var $actualApply = actualApply;
|
|
5665
5644
|
var callBindApplyHelpers = function callBindBasic(args) {
|
|
5666
5645
|
if (args.length < 1 || typeof args[0] !== "function") {
|
|
@@ -5726,8 +5705,8 @@ function requireHasown() {
|
|
|
5726
5705
|
hasRequiredHasown = 1;
|
|
5727
5706
|
var call = Function.prototype.call;
|
|
5728
5707
|
var $hasOwn = Object.prototype.hasOwnProperty;
|
|
5729
|
-
var
|
|
5730
|
-
hasown =
|
|
5708
|
+
var bind3 = functionBind;
|
|
5709
|
+
hasown = bind3.call(call, $hasOwn);
|
|
5731
5710
|
return hasown;
|
|
5732
5711
|
}
|
|
5733
5712
|
var undefined$1;
|
|
@@ -5741,7 +5720,7 @@ var $TypeError$3 = type;
|
|
|
5741
5720
|
var $URIError = uri;
|
|
5742
5721
|
var abs = abs$1;
|
|
5743
5722
|
var floor = floor$1;
|
|
5744
|
-
var max = max$
|
|
5723
|
+
var max = max$2;
|
|
5745
5724
|
var min = min$1;
|
|
5746
5725
|
var pow = pow$1;
|
|
5747
5726
|
var round = round$1;
|
|
@@ -5775,7 +5754,7 @@ var getProto = requireGetProto();
|
|
|
5775
5754
|
var $ObjectGPO = requireObject_getPrototypeOf();
|
|
5776
5755
|
var $ReflectGPO = requireReflect_getPrototypeOf();
|
|
5777
5756
|
var $apply = requireFunctionApply();
|
|
5778
|
-
var $call =
|
|
5757
|
+
var $call = functionCall;
|
|
5779
5758
|
var needsEval = {};
|
|
5780
5759
|
var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined$1 : getProto(Uint8Array);
|
|
5781
5760
|
var INTRINSICS = {
|
|
@@ -5946,13 +5925,13 @@ var LEGACY_ALIASES = {
|
|
|
5946
5925
|
"%WeakMapPrototype%": ["WeakMap", "prototype"],
|
|
5947
5926
|
"%WeakSetPrototype%": ["WeakSet", "prototype"]
|
|
5948
5927
|
};
|
|
5949
|
-
var
|
|
5928
|
+
var bind2 = functionBind;
|
|
5950
5929
|
var hasOwn = requireHasown();
|
|
5951
|
-
var $concat =
|
|
5952
|
-
var $spliceApply =
|
|
5953
|
-
var $replace =
|
|
5954
|
-
var $strSlice =
|
|
5955
|
-
var $exec =
|
|
5930
|
+
var $concat = bind2.call($call, Array.prototype.concat);
|
|
5931
|
+
var $spliceApply = bind2.call($apply, Array.prototype.splice);
|
|
5932
|
+
var $replace = bind2.call($call, String.prototype.replace);
|
|
5933
|
+
var $strSlice = bind2.call($call, String.prototype.slice);
|
|
5934
|
+
var $exec = bind2.call($call, RegExp.prototype.exec);
|
|
5956
5935
|
var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
|
|
5957
5936
|
var reEscapeChar = /\\(\\)?/g;
|
|
5958
5937
|
var stringToPath$1 = function stringToPath(string2) {
|
|
@@ -16970,6 +16949,13 @@ const usersService = adminApi.enhanceEndpoints({
|
|
|
16970
16949
|
overrideExisting: false
|
|
16971
16950
|
});
|
|
16972
16951
|
const { useCreateUserMutation, useGetUsersQuery, useUpdateUserMutation, useDeleteManyUsersMutation, useGetRolesQuery, useCreateRoleMutation, useUpdateRoleMutation, useGetRolePermissionsQuery, useGetRolePermissionLayoutQuery, useUpdateRolePermissionsMutation } = usersService;
|
|
16952
|
+
const getBackendUrl = () => {
|
|
16953
|
+
const raw = process.env.STRAPI_ADMIN_BACKEND_URL || "http://localhost:3100";
|
|
16954
|
+
if (!/^https?:\/\//i.test(raw)) {
|
|
16955
|
+
return "http://localhost:3100";
|
|
16956
|
+
}
|
|
16957
|
+
return raw.endsWith("/") ? raw.slice(0, -1) : raw;
|
|
16958
|
+
};
|
|
16973
16959
|
const LogsTable = () => {
|
|
16974
16960
|
const [logs, setLogs] = React.useState([]);
|
|
16975
16961
|
const [loading, setLoading] = React.useState(false);
|
|
@@ -16986,8 +16972,8 @@ const LogsTable = () => {
|
|
|
16986
16972
|
});
|
|
16987
16973
|
if (filterUserId) params.set("userId", filterUserId);
|
|
16988
16974
|
if (filterStatus) params.set("status", filterStatus);
|
|
16989
|
-
const backendUrl =
|
|
16990
|
-
const res = await fetch(
|
|
16975
|
+
const backendUrl = getBackendUrl();
|
|
16976
|
+
const res = await fetch(new URL(`/crm/logs?${params}`, backendUrl).toString());
|
|
16991
16977
|
if (res.ok) {
|
|
16992
16978
|
const data = await res.json();
|
|
16993
16979
|
setLogs(data.data || []);
|
|
@@ -17033,7 +17019,7 @@ const LogsTable = () => {
|
|
|
17033
17019
|
{
|
|
17034
17020
|
placeholder: "Status",
|
|
17035
17021
|
value: filterStatus,
|
|
17036
|
-
onChange: (val) => setFilterStatus(val),
|
|
17022
|
+
onChange: (val) => setFilterStatus(String(val)),
|
|
17037
17023
|
onClear: () => setFilterStatus(""),
|
|
17038
17024
|
children: [
|
|
17039
17025
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "", children: "All" }),
|
|
@@ -17112,8 +17098,10 @@ const AntiSpamLogsTable = () => {
|
|
|
17112
17098
|
page: String(page),
|
|
17113
17099
|
pageSize: "20"
|
|
17114
17100
|
});
|
|
17115
|
-
const backendUrl =
|
|
17116
|
-
const res = await fetch(
|
|
17101
|
+
const backendUrl = getBackendUrl();
|
|
17102
|
+
const res = await fetch(
|
|
17103
|
+
new URL(`/crm/anti-spam-logs?${params}`, backendUrl).toString()
|
|
17104
|
+
);
|
|
17117
17105
|
if (res.ok) {
|
|
17118
17106
|
const data = await res.json();
|
|
17119
17107
|
setLogs(data.data || []);
|
|
@@ -17206,8 +17194,8 @@ const StatsView = () => {
|
|
|
17206
17194
|
const fetchStats = React.useCallback(async () => {
|
|
17207
17195
|
setLoading(true);
|
|
17208
17196
|
try {
|
|
17209
|
-
const backendUrl =
|
|
17210
|
-
const res = await fetch(
|
|
17197
|
+
const backendUrl = getBackendUrl();
|
|
17198
|
+
const res = await fetch(new URL("/crm/stats", backendUrl).toString());
|
|
17211
17199
|
if (res.ok) {
|
|
17212
17200
|
const data = await res.json();
|
|
17213
17201
|
setStats(Array.isArray(data) ? data : []);
|
|
@@ -16949,6 +16949,13 @@ const usersService = adminApi.enhanceEndpoints({
|
|
|
16949
16949
|
overrideExisting: false
|
|
16950
16950
|
});
|
|
16951
16951
|
const { useCreateUserMutation, useGetUsersQuery, useUpdateUserMutation, useDeleteManyUsersMutation, useGetRolesQuery, useCreateRoleMutation, useUpdateRoleMutation, useGetRolePermissionsQuery, useGetRolePermissionLayoutQuery, useUpdateRolePermissionsMutation } = usersService;
|
|
16952
|
+
const getBackendUrl = () => {
|
|
16953
|
+
const raw = process.env.STRAPI_ADMIN_BACKEND_URL || "http://localhost:3100";
|
|
16954
|
+
if (!/^https?:\/\//i.test(raw)) {
|
|
16955
|
+
return "http://localhost:3100";
|
|
16956
|
+
}
|
|
16957
|
+
return raw.endsWith("/") ? raw.slice(0, -1) : raw;
|
|
16958
|
+
};
|
|
16952
16959
|
const LogsTable = () => {
|
|
16953
16960
|
const [logs, setLogs] = useState([]);
|
|
16954
16961
|
const [loading, setLoading] = useState(false);
|
|
@@ -16965,8 +16972,8 @@ const LogsTable = () => {
|
|
|
16965
16972
|
});
|
|
16966
16973
|
if (filterUserId) params.set("userId", filterUserId);
|
|
16967
16974
|
if (filterStatus) params.set("status", filterStatus);
|
|
16968
|
-
const backendUrl =
|
|
16969
|
-
const res = await fetch(
|
|
16975
|
+
const backendUrl = getBackendUrl();
|
|
16976
|
+
const res = await fetch(new URL(`/crm/logs?${params}`, backendUrl).toString());
|
|
16970
16977
|
if (res.ok) {
|
|
16971
16978
|
const data = await res.json();
|
|
16972
16979
|
setLogs(data.data || []);
|
|
@@ -17012,7 +17019,7 @@ const LogsTable = () => {
|
|
|
17012
17019
|
{
|
|
17013
17020
|
placeholder: "Status",
|
|
17014
17021
|
value: filterStatus,
|
|
17015
|
-
onChange: (val) => setFilterStatus(val),
|
|
17022
|
+
onChange: (val) => setFilterStatus(String(val)),
|
|
17016
17023
|
onClear: () => setFilterStatus(""),
|
|
17017
17024
|
children: [
|
|
17018
17025
|
/* @__PURE__ */ jsx(SingleSelectOption, { value: "", children: "All" }),
|
|
@@ -17091,8 +17098,10 @@ const AntiSpamLogsTable = () => {
|
|
|
17091
17098
|
page: String(page),
|
|
17092
17099
|
pageSize: "20"
|
|
17093
17100
|
});
|
|
17094
|
-
const backendUrl =
|
|
17095
|
-
const res = await fetch(
|
|
17101
|
+
const backendUrl = getBackendUrl();
|
|
17102
|
+
const res = await fetch(
|
|
17103
|
+
new URL(`/crm/anti-spam-logs?${params}`, backendUrl).toString()
|
|
17104
|
+
);
|
|
17096
17105
|
if (res.ok) {
|
|
17097
17106
|
const data = await res.json();
|
|
17098
17107
|
setLogs(data.data || []);
|
|
@@ -17185,8 +17194,8 @@ const StatsView = () => {
|
|
|
17185
17194
|
const fetchStats = useCallback(async () => {
|
|
17186
17195
|
setLoading(true);
|
|
17187
17196
|
try {
|
|
17188
|
-
const backendUrl =
|
|
17189
|
-
const res = await fetch(
|
|
17197
|
+
const backendUrl = getBackendUrl();
|
|
17198
|
+
const res = await fetch(new URL("/crm/stats", backendUrl).toString());
|
|
17190
17199
|
if (res.ok) {
|
|
17191
17200
|
const data = await res.json();
|
|
17192
17201
|
setStats(Array.isArray(data) ? data : []);
|
package/dist/admin/index.js
CHANGED
package/dist/admin/index.mjs
CHANGED