react-toolkits 2.9.18 → 2.9.20
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/CHANGELOG.md +12 -0
- package/lib/index.d.ts +4 -4
- package/lib/index.js +27 -31
- package/lib/index.js.map +1 -1
- package/locale/hooks.js.map +1 -1
- package/locale/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/lib/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { ParagraphProps } from 'antd/es/typography/Paragraph';
|
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
import { FormInstance, MenuProps, ButtonProps, ModalProps, FormProps } from 'antd';
|
|
7
7
|
import { TableProps } from 'antd/es/table';
|
|
8
|
-
import {
|
|
8
|
+
import { ItemType, SubMenuType, MenuItemGroupType, MenuItemType } from 'antd/es/menu/interface';
|
|
9
9
|
import { Merge } from 'ts-essentials';
|
|
10
10
|
import * as zustand_middleware from 'zustand/middleware';
|
|
11
11
|
import { StateStorage } from 'zustand/middleware';
|
|
@@ -124,6 +124,7 @@ type Locale = {
|
|
|
124
124
|
interface ContextProps {
|
|
125
125
|
locale: Locale;
|
|
126
126
|
usePermissionApiV2: boolean;
|
|
127
|
+
gameApiV2: boolean;
|
|
127
128
|
interceptor?: {
|
|
128
129
|
response?: (response: Response, opts: RequestOptions) => Promise<any>;
|
|
129
130
|
};
|
|
@@ -196,7 +197,7 @@ type SubMenuType2 = Merge<SubMenuType, {
|
|
|
196
197
|
type MenuItemGroupType2 = Merge<MenuItemGroupType, {
|
|
197
198
|
children?: NavMenuItem[];
|
|
198
199
|
}>;
|
|
199
|
-
type NavMenuItem =
|
|
200
|
+
type NavMenuItem = Exclude<ItemType, SubMenuType | MenuItemGroupType | MenuItemType> | MenuItemType2 | SubMenuType2 | MenuItemGroupType2;
|
|
200
201
|
|
|
201
202
|
interface NavMenuProps {
|
|
202
203
|
items?: NavMenuItem[];
|
|
@@ -223,7 +224,6 @@ interface Game {
|
|
|
223
224
|
}
|
|
224
225
|
|
|
225
226
|
interface GameSelectProps {
|
|
226
|
-
apiV2?: boolean;
|
|
227
227
|
filter?: (game: Game) => boolean;
|
|
228
228
|
onGameChange?: (game: Game) => void;
|
|
229
229
|
}
|
|
@@ -233,7 +233,7 @@ type HeaderExtra = {
|
|
|
233
233
|
children: ReactNode;
|
|
234
234
|
};
|
|
235
235
|
interface LayoutProps extends Pick<GameSelectProps, 'filter' | 'onGameChange'> {
|
|
236
|
-
|
|
236
|
+
menuCollapsible?: boolean;
|
|
237
237
|
title?: ReactNode;
|
|
238
238
|
items?: NavMenuItem[];
|
|
239
239
|
hideGameSelect?: boolean;
|
package/lib/index.js
CHANGED
|
@@ -137,8 +137,9 @@ var init_Provider = __esm({
|
|
|
137
137
|
init_en_GB();
|
|
138
138
|
createContextStore = (initProps) => {
|
|
139
139
|
const DEFAULT_PROPS = {
|
|
140
|
+
locale: en_GB_default,
|
|
140
141
|
usePermissionApiV2: false,
|
|
141
|
-
|
|
142
|
+
gameApiV2: false
|
|
142
143
|
};
|
|
143
144
|
return createStore()((set) => ({
|
|
144
145
|
...DEFAULT_PROPS,
|
|
@@ -340,24 +341,23 @@ function checkChildren(children, permissions) {
|
|
|
340
341
|
}
|
|
341
342
|
function transformItems(items, permissions) {
|
|
342
343
|
const result = [];
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
...restProps,
|
|
353
|
-
children: transformItems(children ?? [], permissions)
|
|
344
|
+
if (items) {
|
|
345
|
+
for (let i = 0; i < items.length; i++) {
|
|
346
|
+
if (items[i] === null || items[i].type === "divider") {
|
|
347
|
+
result[i] = items[i];
|
|
348
|
+
} else if (items[i].children) {
|
|
349
|
+
const { children, ...rest } = items[i];
|
|
350
|
+
result[i] = checkChildren(children, permissions) ? {
|
|
351
|
+
...rest,
|
|
352
|
+
children: transformItems(children, permissions)
|
|
354
353
|
} : null;
|
|
355
354
|
} else {
|
|
356
|
-
const { route: route3, label, code, ...
|
|
355
|
+
const { route: route3, label, code, ...rest } = items[i];
|
|
357
356
|
const isPass = !code || !permissions || permissions[code];
|
|
357
|
+
const labelNode = route3 ? /* @__PURE__ */ jsx(Link, { to: route3, children: label }) : label;
|
|
358
358
|
result[i] = isPass ? {
|
|
359
|
-
...
|
|
360
|
-
label:
|
|
359
|
+
...rest,
|
|
360
|
+
label: labelNode
|
|
361
361
|
} : null;
|
|
362
362
|
}
|
|
363
363
|
}
|
|
@@ -376,15 +376,8 @@ function flatItems(items, result = [], keypath = []) {
|
|
|
376
376
|
}
|
|
377
377
|
return result;
|
|
378
378
|
}
|
|
379
|
-
var withLink;
|
|
380
379
|
var init_utils = __esm({
|
|
381
380
|
"src/components/navMenu/utils.tsx"() {
|
|
382
|
-
withLink = (label, route3) => {
|
|
383
|
-
if (route3) {
|
|
384
|
-
return /* @__PURE__ */ jsx(Link, { to: route3, children: label });
|
|
385
|
-
}
|
|
386
|
-
return label;
|
|
387
|
-
};
|
|
388
381
|
}
|
|
389
382
|
});
|
|
390
383
|
var NavMenu, NavMenu_default;
|
|
@@ -617,6 +610,7 @@ var init_stores2 = __esm({
|
|
|
617
610
|
"src/components/layout/stores.ts"() {
|
|
618
611
|
init_request();
|
|
619
612
|
init_storage();
|
|
613
|
+
init_contextProvider();
|
|
620
614
|
useLayoutStore = create()(
|
|
621
615
|
persist(
|
|
622
616
|
(set) => ({
|
|
@@ -637,7 +631,7 @@ var init_stores2 = __esm({
|
|
|
637
631
|
isLoading: false,
|
|
638
632
|
game: null,
|
|
639
633
|
games: [],
|
|
640
|
-
async fetchGames({ apiV2 =
|
|
634
|
+
async fetchGames({ apiV2 = contextStore.getState().gameApiV2, forceUpdate = false } = {}) {
|
|
641
635
|
if (!forceUpdate && get2().initialized) {
|
|
642
636
|
return get2().games;
|
|
643
637
|
}
|
|
@@ -673,13 +667,15 @@ var init_stores2 = __esm({
|
|
|
673
667
|
var Text, GameSelect, GameSelect_default;
|
|
674
668
|
var init_GameSelect = __esm({
|
|
675
669
|
"src/components/layout/GameSelect.tsx"() {
|
|
670
|
+
init_contextProvider();
|
|
676
671
|
init_locale();
|
|
677
672
|
init_stores2();
|
|
678
673
|
({ Text } = Typography);
|
|
679
674
|
GameSelect = (props) => {
|
|
680
|
-
const {
|
|
675
|
+
const { filter, onGameChange } = props;
|
|
681
676
|
const { t } = useTranslation();
|
|
682
677
|
const { game, games, isLoading, fetchGames } = useGameStore();
|
|
678
|
+
const apiV2 = useToolkitsContext((state) => state.gameApiV2);
|
|
683
679
|
useEffect(() => {
|
|
684
680
|
fetchGames({ apiV2 });
|
|
685
681
|
}, []);
|
|
@@ -733,7 +729,7 @@ var init_Layout = __esm({
|
|
|
733
729
|
({ Header, Sider, Content } = Antd2.Layout);
|
|
734
730
|
Layout2 = (props) => {
|
|
735
731
|
const {
|
|
736
|
-
|
|
732
|
+
menuCollapsible,
|
|
737
733
|
title,
|
|
738
734
|
items,
|
|
739
735
|
headerExtra,
|
|
@@ -771,7 +767,7 @@ var init_Layout = __esm({
|
|
|
771
767
|
children: [
|
|
772
768
|
/* @__PURE__ */ jsxs("div", { className: "flex gap-2 px-6 py-4 overflow-hidden", children: [
|
|
773
769
|
/* @__PURE__ */ jsx(Logo_default, { width: 32, height: 32 }),
|
|
774
|
-
!collapsed && /* @__PURE__ */ jsx("div", { className: "h-8 flex items-center expand", children: title })
|
|
770
|
+
(!menuCollapsible || !collapsed) && /* @__PURE__ */ jsx("div", { className: "h-8 flex items-center expand", children: title })
|
|
775
771
|
] }),
|
|
776
772
|
/* @__PURE__ */ jsx(NavMenu_default, { items })
|
|
777
773
|
]
|
|
@@ -787,7 +783,7 @@ var init_Layout = __esm({
|
|
|
787
783
|
},
|
|
788
784
|
children: /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center h-full", children: [
|
|
789
785
|
/* @__PURE__ */ jsxs(Space, { size: "small", split: /* @__PURE__ */ jsx(Divider, { type: "vertical" }), className: "mr-6", children: [
|
|
790
|
-
/* @__PURE__ */ jsx(
|
|
786
|
+
menuCollapsible && /* @__PURE__ */ jsx(
|
|
791
787
|
Button,
|
|
792
788
|
{
|
|
793
789
|
type: "text",
|
|
@@ -796,7 +792,7 @@ var init_Layout = __esm({
|
|
|
796
792
|
onClick: onCollapse
|
|
797
793
|
}
|
|
798
794
|
),
|
|
799
|
-
usePermissionApiV2 && !hideGameSelect && /* @__PURE__ */ jsx(GameSelect_default, {
|
|
795
|
+
usePermissionApiV2 && !hideGameSelect && /* @__PURE__ */ jsx(GameSelect_default, { filter, onGameChange }),
|
|
800
796
|
headerExtra?.left?.map((extra) => /* @__PURE__ */ jsx("span", { children: extra.children }, extra.key))
|
|
801
797
|
] }),
|
|
802
798
|
/* @__PURE__ */ jsxs(Space, { size: "small", split: /* @__PURE__ */ jsx(Divider, { type: "vertical" }), children: [
|
|
@@ -874,7 +870,7 @@ async function request(url, opts = {}) {
|
|
|
874
870
|
if (!headers.has(APP_ID_HEADER_NAME) && contextStore.getState().usePermissionApiV2) {
|
|
875
871
|
const game = useGameStore.getState().game;
|
|
876
872
|
if (game) {
|
|
877
|
-
headers.set(APP_ID_HEADER_NAME, String(game.game_id
|
|
873
|
+
headers.set(APP_ID_HEADER_NAME, String(contextStore.getState().gameApiV2 ? game.game_id : game.id));
|
|
878
874
|
}
|
|
879
875
|
}
|
|
880
876
|
if (responseType === "blob") {
|
|
@@ -1110,7 +1106,7 @@ var init_QueryList = __esm({
|
|
|
1110
1106
|
});
|
|
1111
1107
|
const action = useRef(3 /* Init */);
|
|
1112
1108
|
const { game } = useGameStore();
|
|
1113
|
-
const usePermissionApiV2 = useToolkitsContext((state) => state
|
|
1109
|
+
const { gameApiV2, usePermissionApiV2 } = useToolkitsContext((state) => state);
|
|
1114
1110
|
const [isValid, setIsValid] = useState(false);
|
|
1115
1111
|
const { keyMap, getPayload, refetch } = useQueryListStore();
|
|
1116
1112
|
const { page, size = defaultSize, formValue } = getPayload(route3);
|
|
@@ -1134,7 +1130,7 @@ var init_QueryList = __esm({
|
|
|
1134
1130
|
if (isGlobal) {
|
|
1135
1131
|
newHeaders.set(APP_ID_HEADER_NAME, "global");
|
|
1136
1132
|
} else if (game) {
|
|
1137
|
-
newHeaders.set(APP_ID_HEADER_NAME, String(game.id));
|
|
1133
|
+
newHeaders.set(APP_ID_HEADER_NAME, String(gameApiV2 ? game.game_id : game.id));
|
|
1138
1134
|
}
|
|
1139
1135
|
}
|
|
1140
1136
|
return newHeaders;
|