module-menu 0.3.12 → 0.3.14
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/.umirc.js +1 -1
- package/config/config.js +2 -2
- package/package.json +1 -1
- package/src/pages/ModuleUser/index.jsx +22 -4
- package/src/pages/util/axios.js +21 -3
- package/src/pages/util/constant.js +5 -0
- package/src/pages/util/permessionUtils.js +22 -1
- package/src/.umi/.cache/babel-loader/0440d0cfbe25ef6b56faf39a0a11b658.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/05ea2fac9885e74869a457cd9582c3a0.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/0aee7c1246336f70619299514f9a1b68.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/0b6eea229e88caca31925c19d654c11e.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/0c6582347aa9e4ca921a1913924bc5b6.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/113aee39b4ad6811815e7806955fc457.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/159af6052a162402fe59481f6ad7e663.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/17e1c792fe1cce1ba2808bc43defddf5.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/1e250da14805cadf78bd3ba932e010cc.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/213fd3cc54f1230d849ad2141ea26289.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/24422fcd860a1706766d4d4a58ff1ccd.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/28dc489261c27ae83dee27e1ae300e0b.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/2a01984c35867d10378246fbebd50317.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/2fb15675679740ca6754725437f6744d.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/391eacac402d00734eaffc6a1bc400d3.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/3c37cc2581cb2a0e17b89ee572ec8b40.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/3ebba0b2a247bd463b6c5adca60e9f47.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/3fc417e06ceb5932f5b6b8e13fb4e93f.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/4048e9cb2fdc9b98821ae7c21b531cdf.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/427bee8ca1426d9cc00400f594554e28.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/429ed55c763161521cd15882a94a5ac9.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/5217b75b745aadea31e1904aef8b643c.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/577ce155ffcd2a14b4a1fe446a513811.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/5a2470e7bb682e7de46dded932d53600.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/6311bec3fa60e259dea26475fbe0a572.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/65dcab46881bb5d4cb8033ad6bb52d9b.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/6887e052397ee17828364a77d52052be.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/6d96fbf7990411b72efb926ddacdbc05.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/6dad279cbaade1e7013a3bc2455377d2.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/70fcf77baeeff4d69a1a6061632493f2.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/75dd1fb421db15322e03029d564e5bcd.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/7ae28a4999858102efd08da7070592c8.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/7ba54f6d3f9098af4639ba81a682963a.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/7bd68d6fd5c794bf2814b14abf79fbed.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/7c9fcf1d262c1850a8a2c85ebb7cdc32.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/7db7d9cc5bf1213e06c305ac0b0487b9.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/80cbe9c0cb055d9647484d1d5a69b63f.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/8b20ee688e641a150eae67febafba01c.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/8e3c8916b1c7a345d611405ee254c30f.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/8f933c5ffa278fb55030d953ee63bfa2.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/9288c4037954f3344af9ae8a76c2d46c.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/939f82b31b7ffe5a1fb4ebf3bc34ecad.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/976f9445a91f7cbe2eb61d0708c573bf.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/9eb5730dccd9f3f3a6ef45fd403ad0f5.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/9f091d40d71d884a8640e0008396764d.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/a0af199bb88206f182ee53ea5a9aecdc.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/a1fb02e95067fcb74b825835a3ba7776.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/a6c70af6486b1d199cfb88f3ea83cf46.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/ab66fe5a964fc8612310515f1f205c0d.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/b054c4170e7f0e25244c6a050d042bed.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/be3ec585a0c59407844dbc6407debe4b.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/c32fb9c23198883aeb0d35bc94c77a36.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/c93b48f93437f4d84603d2b454bb0a4e.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/cb366155f73f16b244bdde509508f3cc.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/d0321c73665b47435dfc4ad53e312b53.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/d57b0ddf56b7b7356f036612daaeaf61.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/dca768dd78fc1172c4a99b3dfd112419.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/e169af5ee0735392e15571786c6704e1.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/e479d976bf45e53de896d832c7e5f551.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/e6611541a969f08cb80a65889b3ec769.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/e74d842a6200ee0c850b8893eae7f2f4.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/ea14ffa9823906be98f3e4e1c7413d79.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/ea38c8002da83235b644d9c607b2f2cc.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/ea39191ffaaeb93aad0204043c30c65a.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/eb5f4e167ca73d71e1fbfd5e859e0cb8.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/eb7ec7f8d0c9ec48c6ea282edfa95151.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/f63f7b3d413e3777167c91bfb28442b9.json.gz +0 -0
- package/src/.umi/.cache/babel-loader/f9306e950816ec5f05186035c2ade6f2.json.gz +0 -0
- package/src/.umi/core/devScripts.ts +0 -53
- package/src/.umi/core/history.ts +0 -21
- package/src/.umi/core/plugin.ts +0 -8
- package/src/.umi/core/pluginConfig.d.ts +0 -304
- package/src/.umi/core/pluginRegister.ts +0 -15
- package/src/.umi/core/polyfill.ts +0 -4
- package/src/.umi/core/routes.ts +0 -24
- package/src/.umi/core/umiExports.ts +0 -7
- package/src/.umi/plugin-helmet/exports.ts +0 -3
- package/src/.umi/plugin-initial-state/Provider.tsx +0 -37
- package/src/.umi/plugin-initial-state/exports.ts +0 -7
- package/src/.umi/plugin-initial-state/models/initialState.ts +0 -2
- package/src/.umi/plugin-initial-state/runtime.tsx +0 -13
- package/src/.umi/plugin-model/Provider.tsx +0 -39
- package/src/.umi/plugin-model/helpers/constant.tsx +0 -4
- package/src/.umi/plugin-model/helpers/dispatcher.tsx +0 -19
- package/src/.umi/plugin-model/helpers/executor.tsx +0 -83
- package/src/.umi/plugin-model/runtime.tsx +0 -12
- package/src/.umi/plugin-model/useModel.tsx +0 -71
- package/src/.umi/plugin-request/request.ts +0 -278
- package/src/.umi/umi.ts +0 -58
package/.umirc.js
CHANGED
package/config/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// https://umijs.org/config/
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
const { defineConfig } = require('umi');
|
|
3
|
+
module.exports = defineConfig({
|
|
4
4
|
proxy: {
|
|
5
5
|
// localhost:8000/cmcc/data/** -> http://192.168.108.88:30808/cmcc/data/**
|
|
6
6
|
'/cmcc/data/': {
|
package/package.json
CHANGED
|
@@ -10,6 +10,7 @@ import { Spin, Menu, Avatar } from 'antd';
|
|
|
10
10
|
import HeaderDropdown from './HeaderDropdown';
|
|
11
11
|
import Axios from '../util/axios';
|
|
12
12
|
import getStore, { getUserName } from '../util/userInfo';
|
|
13
|
+
import { getLoginUrl } from '../util/permessionUtils';
|
|
13
14
|
import './index.less';
|
|
14
15
|
import cn from 'classnames'
|
|
15
16
|
import userLogo1 from '../../assets/userLogo1.png';
|
|
@@ -27,7 +28,7 @@ const ModuleUser = ({ stash = '' }) => {
|
|
|
27
28
|
}, []);
|
|
28
29
|
const handleClickmenu = (url) => {
|
|
29
30
|
window.location.href = url;
|
|
30
|
-
};
|
|
31
|
+
};
|
|
31
32
|
const handleClickSysManage = () => {
|
|
32
33
|
if(['integration', 'LNRD', 'HBJK'].includes(stash)){
|
|
33
34
|
Axios('get', '/admin-api/system/auth/homePage', '', {})
|
|
@@ -123,7 +124,24 @@ const ModuleUser = ({ stash = '' }) => {
|
|
|
123
124
|
console.log('退出登录接口调用成功');
|
|
124
125
|
localStorage.clear();
|
|
125
126
|
sessionStorage.clear();
|
|
126
|
-
|
|
127
|
+
if (['integration', 'LNRD', 'HBJK'].includes(stash)) {
|
|
128
|
+
getLoginUrl()
|
|
129
|
+
.then((res) => {
|
|
130
|
+
if (res?.data?.data?.loginoutUrl) {
|
|
131
|
+
console.log('Login URL found:', res.data.data.loginoutUrl);
|
|
132
|
+
window.location.replace(res.data.data.loginoutUrl);
|
|
133
|
+
} else {
|
|
134
|
+
console.log('No login URL found, redirect to default login page.');
|
|
135
|
+
window.location.replace('/admin-ui/login');
|
|
136
|
+
}
|
|
137
|
+
})
|
|
138
|
+
.catch((e) => {
|
|
139
|
+
console.log('GetLoginUrl error: ', e);
|
|
140
|
+
window.location.replace('/admin-ui/login');
|
|
141
|
+
});
|
|
142
|
+
} else {
|
|
143
|
+
window.location.href = DEFAULT_LOGOUT_URL;
|
|
144
|
+
}
|
|
127
145
|
})
|
|
128
146
|
.catch((error) => {
|
|
129
147
|
console.error('Error while logging out, error:', error);
|
|
@@ -159,7 +177,7 @@ const ModuleUser = ({ stash = '' }) => {
|
|
|
159
177
|
key="personalCenter"
|
|
160
178
|
onClick={() =>
|
|
161
179
|
handleClickmenu(
|
|
162
|
-
['integration', 'LNRD', 'HBJK'].includes(stash) ?
|
|
180
|
+
['integration', 'LNRD', 'HBJK'].includes(stash) ?
|
|
163
181
|
'/admin-ui/data-share-portal/personal/info':
|
|
164
182
|
(stash === 'GZW'? '/data-platform/#/info/index' : '/#/info/index')
|
|
165
183
|
)
|
|
@@ -209,7 +227,7 @@ const ModuleUser = ({ stash = '' }) => {
|
|
|
209
227
|
return (
|
|
210
228
|
<div className={cn(stash !== 'LNRD'? 'right_size':'right_size_LNRD', 'right')}>
|
|
211
229
|
{['integration', 'LNRD', 'HBJK'].includes(stash) && [
|
|
212
|
-
<Button type="link" onClick={jumpToExterHome}
|
|
230
|
+
<Button type="link" onClick={jumpToExterHome}
|
|
213
231
|
className={cn(stash === 'LNRD'? 'fwmh_color_LNRD': stash === 'HBJK'? 'fwmh_color_HBJK' : null)}>
|
|
214
232
|
服务门户
|
|
215
233
|
</Button>,
|
package/src/pages/util/axios.js
CHANGED
|
@@ -2,7 +2,8 @@ import { message } from 'antd';
|
|
|
2
2
|
import axios from 'axios';
|
|
3
3
|
import baseCof from './config';
|
|
4
4
|
import getStore from './userInfo';
|
|
5
|
-
import { checkToken } from './permessionUtils';
|
|
5
|
+
import { checkToken, getLoginUrl } from './permessionUtils';
|
|
6
|
+
import CONSTANT from './constant';
|
|
6
7
|
|
|
7
8
|
let tokenValue = '5de3ef8171364d6ba756221655fe1310';
|
|
8
9
|
// 轻量级tokenInSessionStor存在(GZW跳/data-platform/#/login,否则/#/login),一体化tokenInSessionStor不存在
|
|
@@ -15,6 +16,23 @@ const stash = localStorage.getItem('stash');
|
|
|
15
16
|
axios.interceptors.response.use(
|
|
16
17
|
(response) => {
|
|
17
18
|
if (response.status === 200) {
|
|
19
|
+
if (!tokenInSessionStor && response?.data?.code === 401) {
|
|
20
|
+
getLoginUrl()
|
|
21
|
+
.then((res) => {
|
|
22
|
+
if (res?.data?.data?.loginoutUrl) {
|
|
23
|
+
console.log('Login URL found:', res.data.data.loginoutUrl);
|
|
24
|
+
window.location.replace(res.data.data.loginoutUrl);
|
|
25
|
+
} else {
|
|
26
|
+
console.log('No login URL found, redirect to default login page.');
|
|
27
|
+
window.location.replace('/admin-ui/login');
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
.catch((e) => {
|
|
31
|
+
console.log('GetLoginUrl error: ', e);
|
|
32
|
+
window.location.replace('/admin-ui/login');
|
|
33
|
+
});
|
|
34
|
+
return
|
|
35
|
+
}
|
|
18
36
|
return response;
|
|
19
37
|
} else if (
|
|
20
38
|
response.status === 401 ||
|
|
@@ -47,7 +65,7 @@ axios.interceptors.response.use(
|
|
|
47
65
|
console.log('error', error);
|
|
48
66
|
if (error.response) {
|
|
49
67
|
if (error.response.status === 401) {
|
|
50
|
-
if (tokenInSessionStor) {
|
|
68
|
+
if (!tokenInSessionStor) {
|
|
51
69
|
if (process.env.NODE_ENV === 'production') {
|
|
52
70
|
tokenValue = getStore({ name: 'access_token' });
|
|
53
71
|
}
|
|
@@ -58,7 +76,7 @@ axios.interceptors.response.use(
|
|
|
58
76
|
onClose: () => {
|
|
59
77
|
localStorage.clear();
|
|
60
78
|
sessionStorage.clear();
|
|
61
|
-
window.location.href =
|
|
79
|
+
window.location.href = CONSTANT.DEFAULT_LOGOUT_URL_COMPACT;
|
|
62
80
|
},
|
|
63
81
|
});
|
|
64
82
|
}
|
|
@@ -9,7 +9,28 @@ export const checkToken = (token) => {
|
|
|
9
9
|
message.error({content:'用户凭证已过期,请重新登录', onClose: ()=>{
|
|
10
10
|
localStorage.clear();
|
|
11
11
|
sessionStorage.clear();
|
|
12
|
-
|
|
12
|
+
getLoginUrl()
|
|
13
|
+
.then((res) => {
|
|
14
|
+
if (res?.data?.data?.loginoutUrl) {
|
|
15
|
+
console.log('Login URL found:', res.data.data.loginoutUrl);
|
|
16
|
+
window.location.replace(res.data.data.loginoutUrl);
|
|
17
|
+
} else {
|
|
18
|
+
console.log('No login URL found, redirect to default login page.');
|
|
19
|
+
window.location.replace('/admin-ui/login');
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
.catch((e) => {
|
|
23
|
+
console.log('GetLoginUrl error: ', e);
|
|
24
|
+
window.location.replace('/admin-ui/login');
|
|
25
|
+
});
|
|
13
26
|
}});
|
|
14
27
|
})
|
|
15
28
|
}
|
|
29
|
+
|
|
30
|
+
// 获取登录地址信息
|
|
31
|
+
export function getLoginUrl() {
|
|
32
|
+
return Axios(
|
|
33
|
+
'get',
|
|
34
|
+
'/admin-api/system/auth/getCodeUrl',
|
|
35
|
+
)
|
|
36
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
|
|
3
|
-
if (window.g_initWebpackHotDevClient) {
|
|
4
|
-
function tryApplyUpdates(onHotUpdateSuccess?: Function) {
|
|
5
|
-
// @ts-ignore
|
|
6
|
-
if (!module.hot) {
|
|
7
|
-
window.location.reload();
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function isUpdateAvailable() {
|
|
12
|
-
// @ts-ignore
|
|
13
|
-
return window.g_getMostRecentCompilationHash() !== __webpack_hash__;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// TODO: is update available?
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
if (!isUpdateAvailable() || module.hot.status() !== 'idle') {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function handleApplyUpdates(err: Error | null, updatedModules: any) {
|
|
23
|
-
if (err || !updatedModules || window.g_getHadRuntimeError()) {
|
|
24
|
-
window.location.reload();
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
onHotUpdateSuccess?.();
|
|
29
|
-
|
|
30
|
-
if (isUpdateAvailable()) {
|
|
31
|
-
// While we were updating, there was a new update! Do it again.
|
|
32
|
-
tryApplyUpdates();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// @ts-ignore
|
|
37
|
-
module.hot.check(true).then(
|
|
38
|
-
function (updatedModules: any) {
|
|
39
|
-
handleApplyUpdates(null, updatedModules);
|
|
40
|
-
},
|
|
41
|
-
function (err: Error) {
|
|
42
|
-
handleApplyUpdates(err, null);
|
|
43
|
-
},
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
window.g_initWebpackHotDevClient({
|
|
48
|
-
tryApplyUpdates,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export const __mfsu = 1;
|
|
53
|
-
|
package/src/.umi/core/history.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { createBrowserHistory, History } from 'D:/E_Drive/gitlab/bigdata/jikong/module-menu/node_modules/@umijs/runtime';
|
|
3
|
-
|
|
4
|
-
let options = {
|
|
5
|
-
"basename": "/"
|
|
6
|
-
};
|
|
7
|
-
if ((<any>window).routerBase) {
|
|
8
|
-
options.basename = (<any>window).routerBase;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
// remove initial history because of ssr
|
|
12
|
-
let history: History = process.env.__IS_SERVER ? null : createBrowserHistory(options);
|
|
13
|
-
export const createHistory = (hotReload = false) => {
|
|
14
|
-
if (!hotReload) {
|
|
15
|
-
history = createBrowserHistory(options);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return history;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export { history };
|
package/src/.umi/core/plugin.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
import { Plugin } from 'D:/E_Drive/gitlab/bigdata/jikong/module-menu/node_modules/@umijs/runtime';
|
|
3
|
-
|
|
4
|
-
const plugin = new Plugin({
|
|
5
|
-
validKeys: ['modifyClientRenderOpts','patchRoutes','rootContainer','render','onRouteChange','__mfsu','getInitialState','initialStateConfig','request',],
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
export { plugin };
|