@shuvi/router-react 0.0.1-pre.3 → 0.0.1-pre.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.
- package/esm/Link.js +1 -0
- package/esm/index.js +1 -0
- package/esm/types.js +1 -0
- package/lib/Link.js +26 -12
- package/lib/MemoryRouter.js +3 -2
- package/lib/Router.js +20 -7
- package/lib/RouterView.js +5 -4
- package/lib/constants.js +1 -0
- package/lib/contexts.js +2 -1
- package/lib/hooks.js +32 -19
- package/lib/index.js +19 -10
- package/lib/utils.js +4 -3
- package/lib/withRouter.js +2 -1
- package/package.json +4 -4
package/esm/Link.js
CHANGED
package/esm/index.js
CHANGED
package/esm/types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/Link.js
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
22
|
var t = {};
|
|
4
23
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -10,17 +29,11 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
29
|
}
|
|
11
30
|
return t;
|
|
12
31
|
};
|
|
13
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
14
|
-
if (mod && mod.__esModule) return mod;
|
|
15
|
-
var result = {};
|
|
16
|
-
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
|
17
|
-
result["default"] = mod;
|
|
18
|
-
return result;
|
|
19
|
-
};
|
|
20
32
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
33
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
34
|
};
|
|
23
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.Link = void 0;
|
|
24
37
|
const React = __importStar(require("react"));
|
|
25
38
|
const prop_types_1 = __importDefault(require("prop-types"));
|
|
26
39
|
const _1 = require(".");
|
|
@@ -35,10 +48,10 @@ function isModifiedEvent(event) {
|
|
|
35
48
|
*/
|
|
36
49
|
exports.Link = React.forwardRef(function LinkWithRef(_a, ref) {
|
|
37
50
|
var { onClick, replace: replaceProp = false, state, target, to } = _a, rest = __rest(_a, ["onClick", "replace", "state", "target", "to"]);
|
|
38
|
-
let href = _1.useHref(to);
|
|
39
|
-
let navigate = _1.useNavigate();
|
|
40
|
-
const location = hooks_1.useCurrentRoute();
|
|
41
|
-
let path = _1.useResolvedPath(to);
|
|
51
|
+
let href = (0, _1.useHref)(to);
|
|
52
|
+
let navigate = (0, _1.useNavigate)();
|
|
53
|
+
const location = (0, hooks_1.useCurrentRoute)();
|
|
54
|
+
let path = (0, _1.useResolvedPath)(to);
|
|
42
55
|
function handleClick(event) {
|
|
43
56
|
if (onClick)
|
|
44
57
|
onClick(event);
|
|
@@ -50,7 +63,7 @@ exports.Link = React.forwardRef(function LinkWithRef(_a, ref) {
|
|
|
50
63
|
event.preventDefault();
|
|
51
64
|
// If the URL hasn't changed, a regular <a> will do a replace instead of
|
|
52
65
|
// a push, so do the same here.
|
|
53
|
-
let replace = !!replaceProp || router_1.pathToString(location) === router_1.pathToString(path);
|
|
66
|
+
let replace = !!replaceProp || (0, router_1.pathToString)(location) === (0, router_1.pathToString)(path);
|
|
54
67
|
navigate(to, { replace, state });
|
|
55
68
|
}
|
|
56
69
|
}
|
|
@@ -65,6 +78,7 @@ if (constants_1.__DEV__) {
|
|
|
65
78
|
replace: prop_types_1.default.bool,
|
|
66
79
|
state: prop_types_1.default.object,
|
|
67
80
|
target: prop_types_1.default.string,
|
|
81
|
+
// @ts-ignore proptypes's bug?
|
|
68
82
|
to: prop_types_1.default.oneOfType([
|
|
69
83
|
prop_types_1.default.string,
|
|
70
84
|
prop_types_1.default.shape({
|
package/lib/MemoryRouter.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MemoryRouter = void 0;
|
|
6
7
|
const react_1 = __importDefault(require("react"));
|
|
7
8
|
const prop_types_1 = __importDefault(require("prop-types"));
|
|
8
9
|
const router_1 = require("@shuvi/router");
|
|
@@ -14,10 +15,10 @@ const constants_1 = require("./constants");
|
|
|
14
15
|
function MemoryRouter({ basename, children, routes, initialEntries, initialIndex }) {
|
|
15
16
|
let routerRef = react_1.default.useRef();
|
|
16
17
|
if (routerRef.current == null) {
|
|
17
|
-
routerRef.current = router_1.createRouter({
|
|
18
|
+
routerRef.current = (0, router_1.createRouter)({
|
|
18
19
|
basename,
|
|
19
20
|
routes: routes || [],
|
|
20
|
-
history: router_1.createMemoryHistory({ initialEntries, initialIndex })
|
|
21
|
+
history: (0, router_1.createMemoryHistory)({ initialEntries, initialIndex })
|
|
21
22
|
});
|
|
22
23
|
}
|
|
23
24
|
return react_1.default.createElement(Router_1.Router, { children: children, router: routerRef.current });
|
package/lib/Router.js
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
2
14
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
3
15
|
if (mod && mod.__esModule) return mod;
|
|
4
16
|
var result = {};
|
|
5
|
-
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result
|
|
6
|
-
result
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
7
19
|
return result;
|
|
8
20
|
};
|
|
9
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
23
|
};
|
|
12
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.Router = void 0;
|
|
13
26
|
const react_1 = __importStar(require("react"));
|
|
14
27
|
const prop_types_1 = __importDefault(require("prop-types"));
|
|
15
28
|
const invariant_1 = __importDefault(require("@shuvi/utils/lib/invariant"));
|
|
@@ -25,7 +38,7 @@ const utils_1 = require("./utils");
|
|
|
25
38
|
* in web browsers or a <StaticRouter> for server rendering.
|
|
26
39
|
*/
|
|
27
40
|
function Router({ children = null, static: staticProp = false, router }) {
|
|
28
|
-
invariant_1.default(!hooks_1.useInRouterContext(), `You cannot render a <Router> inside another <Router>.` +
|
|
41
|
+
(0, invariant_1.default)(!(0, hooks_1.useInRouterContext)(), `You cannot render a <Router> inside another <Router>.` +
|
|
29
42
|
` You never need more than one.`);
|
|
30
43
|
const contextVal = react_1.default.useMemo(() => {
|
|
31
44
|
return {
|
|
@@ -33,10 +46,10 @@ function Router({ children = null, static: staticProp = false, router }) {
|
|
|
33
46
|
router: router
|
|
34
47
|
};
|
|
35
48
|
}, [staticProp, router]);
|
|
36
|
-
const unmount = react_1.useRef(false);
|
|
37
|
-
const forceupdate = react_1.useReducer(s => s * -1, 1)[1];
|
|
38
|
-
utils_1.useIsomorphicEffect(() => () => (unmount.current = true), []);
|
|
39
|
-
utils_1.useIsomorphicEffect(() => router.listen(() => {
|
|
49
|
+
const unmount = (0, react_1.useRef)(false);
|
|
50
|
+
const forceupdate = (0, react_1.useReducer)(s => s * -1, 1)[1];
|
|
51
|
+
(0, utils_1.useIsomorphicEffect)(() => () => (unmount.current = true), []);
|
|
52
|
+
(0, utils_1.useIsomorphicEffect)(() => router.listen(() => {
|
|
40
53
|
if (unmount.current) {
|
|
41
54
|
return;
|
|
42
55
|
}
|
package/lib/RouterView.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RouterView = void 0;
|
|
6
7
|
const react_1 = __importDefault(require("react"));
|
|
7
8
|
const utils_1 = require("@shuvi/router/lib/utils");
|
|
8
9
|
const hooks_1 = require("./hooks");
|
|
@@ -12,7 +13,7 @@ const utils_2 = require("./utils");
|
|
|
12
13
|
const defaultElement = react_1.default.createElement(RouterView, null);
|
|
13
14
|
function RouterView() {
|
|
14
15
|
let { depth, pathname: parentPathname, params: parentParams } = react_1.default.useContext(contexts_1.MatchedRouteContext);
|
|
15
|
-
const { matches } = hooks_1.useCurrentRoute();
|
|
16
|
+
const { matches } = (0, hooks_1.useCurrentRoute)();
|
|
16
17
|
if (!matches) {
|
|
17
18
|
return null;
|
|
18
19
|
}
|
|
@@ -20,7 +21,7 @@ function RouterView() {
|
|
|
20
21
|
const matched = matches[depth];
|
|
21
22
|
if (!matched) {
|
|
22
23
|
if (constants_1.__DEV__) {
|
|
23
|
-
utils_2.warningOnce(parentPathname, false, `Use <RouterView/> under path "${parentPathname}", but it has no children routes.` +
|
|
24
|
+
(0, utils_2.warningOnce)(parentPathname, false, `Use <RouterView/> under path "${parentPathname}", but it has no children routes.` +
|
|
24
25
|
`\n\n` +
|
|
25
26
|
`Please remove the <RouterView/>.`);
|
|
26
27
|
}
|
|
@@ -32,8 +33,8 @@ function RouterView() {
|
|
|
32
33
|
: defaultElement;
|
|
33
34
|
return (react_1.default.createElement(contexts_1.MatchedRouteContext.Provider, { children: element, value: {
|
|
34
35
|
depth: depth + 1,
|
|
35
|
-
params: utils_2.readOnly(Object.assign(Object.assign({}, parentParams), params)),
|
|
36
|
-
pathname: utils_1.joinPaths([parentPathname, pathname]),
|
|
36
|
+
params: (0, utils_2.readOnly)(Object.assign(Object.assign({}, parentParams), params)),
|
|
37
|
+
pathname: (0, utils_1.joinPaths)([parentPathname, pathname]),
|
|
37
38
|
route
|
|
38
39
|
} }));
|
|
39
40
|
}
|
package/lib/constants.js
CHANGED
package/lib/contexts.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MatchedRouteContext = exports.RouteContext = exports.RouterContext = void 0;
|
|
6
7
|
const react_1 = __importDefault(require("react"));
|
|
7
8
|
const utils_1 = require("./utils");
|
|
8
9
|
const constants_1 = require("./constants");
|
|
@@ -16,7 +17,7 @@ if (constants_1.__DEV__) {
|
|
|
16
17
|
}
|
|
17
18
|
exports.MatchedRouteContext = react_1.default.createContext({
|
|
18
19
|
depth: 0,
|
|
19
|
-
params: utils_1.readOnly({}),
|
|
20
|
+
params: (0, utils_1.readOnly)({}),
|
|
20
21
|
pathname: '',
|
|
21
22
|
route: null
|
|
22
23
|
});
|
package/lib/hooks.js
CHANGED
|
@@ -1,22 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
2
14
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
3
15
|
if (mod && mod.__esModule) return mod;
|
|
4
16
|
var result = {};
|
|
5
|
-
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result
|
|
6
|
-
result
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
7
19
|
return result;
|
|
8
20
|
};
|
|
9
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
23
|
};
|
|
12
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.useRouter = exports.useResolvedPath = exports.useParams = exports.useNavigate = exports.useMatch = exports.useInRouterContext = exports.useHref = exports.useBlocker = exports.useCurrentRoute = void 0;
|
|
13
26
|
const react_1 = __importStar(require("react"));
|
|
14
27
|
const router_1 = require("@shuvi/router");
|
|
15
28
|
const invariant_1 = __importDefault(require("@shuvi/utils/lib/invariant"));
|
|
16
29
|
const contexts_1 = require("./contexts");
|
|
17
30
|
const utils_1 = require("./utils");
|
|
18
31
|
function useCurrentRoute() {
|
|
19
|
-
return react_1.useContext(contexts_1.RouteContext);
|
|
32
|
+
return (0, react_1.useContext)(contexts_1.RouteContext);
|
|
20
33
|
}
|
|
21
34
|
exports.useCurrentRoute = useCurrentRoute;
|
|
22
35
|
/**
|
|
@@ -24,8 +37,8 @@ exports.useCurrentRoute = useCurrentRoute;
|
|
|
24
37
|
* changing until some condition is met, like saving form data.
|
|
25
38
|
*/
|
|
26
39
|
function useBlocker(blocker, when = true) {
|
|
27
|
-
invariant_1.default(useInRouterContext(), `useBlocker() may be used only in the context of a <Router> component.`);
|
|
28
|
-
const { router } = react_1.useContext(contexts_1.RouterContext);
|
|
40
|
+
(0, invariant_1.default)(useInRouterContext(), `useBlocker() may be used only in the context of a <Router> component.`);
|
|
41
|
+
const { router } = (0, react_1.useContext)(contexts_1.RouterContext);
|
|
29
42
|
react_1.default.useEffect(() => {
|
|
30
43
|
if (!when)
|
|
31
44
|
return;
|
|
@@ -48,8 +61,8 @@ exports.useBlocker = useBlocker;
|
|
|
48
61
|
* custom links that are also accessible and preserve right-click behavior.
|
|
49
62
|
*/
|
|
50
63
|
function useHref(to) {
|
|
51
|
-
invariant_1.default(useInRouterContext(), `useHref() may be used only in the context of a <Router> component.`);
|
|
52
|
-
const { router } = react_1.useContext(contexts_1.RouterContext);
|
|
64
|
+
(0, invariant_1.default)(useInRouterContext(), `useHref() may be used only in the context of a <Router> component.`);
|
|
65
|
+
const { router } = (0, react_1.useContext)(contexts_1.RouterContext);
|
|
53
66
|
const path = useResolvedPath(to);
|
|
54
67
|
return router.resolve(path).href;
|
|
55
68
|
}
|
|
@@ -58,7 +71,7 @@ exports.useHref = useHref;
|
|
|
58
71
|
* Returns true if this component is a descendant of a <Router>.
|
|
59
72
|
*/
|
|
60
73
|
function useInRouterContext() {
|
|
61
|
-
return react_1.useContext(contexts_1.RouterContext) != null;
|
|
74
|
+
return (0, react_1.useContext)(contexts_1.RouterContext) != null;
|
|
62
75
|
}
|
|
63
76
|
exports.useInRouterContext = useInRouterContext;
|
|
64
77
|
/**
|
|
@@ -67,9 +80,9 @@ exports.useInRouterContext = useInRouterContext;
|
|
|
67
80
|
* <NavLink>.
|
|
68
81
|
*/
|
|
69
82
|
function useMatch(pattern) {
|
|
70
|
-
invariant_1.default(useInRouterContext(), `useMatch() may be used only in the context of a <Router> component.`);
|
|
83
|
+
(0, invariant_1.default)(useInRouterContext(), `useMatch() may be used only in the context of a <Router> component.`);
|
|
71
84
|
const { pathname } = useCurrentRoute();
|
|
72
|
-
return router_1.matchPathname(pattern, pathname);
|
|
85
|
+
return (0, router_1.matchPathname)(pattern, pathname);
|
|
73
86
|
}
|
|
74
87
|
exports.useMatch = useMatch;
|
|
75
88
|
/**
|
|
@@ -77,9 +90,9 @@ exports.useMatch = useMatch;
|
|
|
77
90
|
* may also be used by other elements to change the location.
|
|
78
91
|
*/
|
|
79
92
|
function useNavigate() {
|
|
80
|
-
invariant_1.default(useInRouterContext(), `useNavigate() may be used only in the context of a <Router> component.`);
|
|
81
|
-
const { router } = react_1.useContext(contexts_1.RouterContext);
|
|
82
|
-
const { pathname } = react_1.useContext(contexts_1.MatchedRouteContext);
|
|
93
|
+
(0, invariant_1.default)(useInRouterContext(), `useNavigate() may be used only in the context of a <Router> component.`);
|
|
94
|
+
const { router } = (0, react_1.useContext)(contexts_1.RouterContext);
|
|
95
|
+
const { pathname } = (0, react_1.useContext)(contexts_1.MatchedRouteContext);
|
|
83
96
|
const activeRef = react_1.default.useRef(false);
|
|
84
97
|
react_1.default.useEffect(() => {
|
|
85
98
|
activeRef.current = true;
|
|
@@ -95,7 +108,7 @@ function useNavigate() {
|
|
|
95
108
|
}
|
|
96
109
|
}
|
|
97
110
|
else {
|
|
98
|
-
utils_1.warning(false, `You should call navigate() in a useEffect, not when ` +
|
|
111
|
+
(0, utils_1.warning)(false, `You should call navigate() in a useEffect, not when ` +
|
|
99
112
|
`your component is first rendered.`);
|
|
100
113
|
}
|
|
101
114
|
}, [router, pathname]);
|
|
@@ -107,15 +120,15 @@ exports.useNavigate = useNavigate;
|
|
|
107
120
|
* URL that were matched by the route path.
|
|
108
121
|
*/
|
|
109
122
|
function useParams() {
|
|
110
|
-
return react_1.useContext(contexts_1.MatchedRouteContext).params;
|
|
123
|
+
return (0, react_1.useContext)(contexts_1.MatchedRouteContext).params;
|
|
111
124
|
}
|
|
112
125
|
exports.useParams = useParams;
|
|
113
126
|
/**
|
|
114
127
|
* Resolves the pathname of the given `to` value against the current location.
|
|
115
128
|
*/
|
|
116
129
|
function useResolvedPath(to) {
|
|
117
|
-
const { router } = react_1.useContext(contexts_1.RouterContext);
|
|
118
|
-
const { pathname } = react_1.useContext(contexts_1.MatchedRouteContext);
|
|
130
|
+
const { router } = (0, react_1.useContext)(contexts_1.RouterContext);
|
|
131
|
+
const { pathname } = (0, react_1.useContext)(contexts_1.MatchedRouteContext);
|
|
119
132
|
return react_1.default.useMemo(() => router.resolve(to, pathname).path, [to, pathname]);
|
|
120
133
|
}
|
|
121
134
|
exports.useResolvedPath = useResolvedPath;
|
|
@@ -123,7 +136,7 @@ exports.useResolvedPath = useResolvedPath;
|
|
|
123
136
|
* Returns the current router object
|
|
124
137
|
*/
|
|
125
138
|
function useRouter() {
|
|
126
|
-
invariant_1.default(useInRouterContext(), `useRouter() may be used only in the context of a <Router> component.`);
|
|
127
|
-
return react_1.useContext(contexts_1.RouterContext).router;
|
|
139
|
+
(0, invariant_1.default)(useInRouterContext(), `useRouter() may be used only in the context of a <Router> component.`);
|
|
140
|
+
return (0, react_1.useContext)(contexts_1.RouterContext).router;
|
|
128
141
|
}
|
|
129
142
|
exports.useRouter = useRouter;
|
package/lib/index.js
CHANGED
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
}
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
5
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.withRouter = exports.Link = exports.Router = exports.RouterView = exports.MemoryRouter = exports.generatePath = void 0;
|
|
6
14
|
var utils_1 = require("./utils");
|
|
7
|
-
exports
|
|
15
|
+
Object.defineProperty(exports, "generatePath", { enumerable: true, get: function () { return utils_1.generatePath; } });
|
|
8
16
|
var MemoryRouter_1 = require("./MemoryRouter");
|
|
9
|
-
exports
|
|
17
|
+
Object.defineProperty(exports, "MemoryRouter", { enumerable: true, get: function () { return MemoryRouter_1.MemoryRouter; } });
|
|
10
18
|
var RouterView_1 = require("./RouterView");
|
|
11
|
-
exports
|
|
19
|
+
Object.defineProperty(exports, "RouterView", { enumerable: true, get: function () { return RouterView_1.RouterView; } });
|
|
12
20
|
var Router_1 = require("./Router");
|
|
13
|
-
exports
|
|
21
|
+
Object.defineProperty(exports, "Router", { enumerable: true, get: function () { return Router_1.Router; } });
|
|
14
22
|
var Link_1 = require("./Link");
|
|
15
|
-
exports
|
|
23
|
+
Object.defineProperty(exports, "Link", { enumerable: true, get: function () { return Link_1.Link; } });
|
|
16
24
|
var withRouter_1 = require("./withRouter");
|
|
17
|
-
exports
|
|
18
|
-
|
|
25
|
+
Object.defineProperty(exports, "withRouter", { enumerable: true, get: function () { return withRouter_1.withRouter; } });
|
|
26
|
+
__exportStar(require("./hooks"), exports);
|
|
27
|
+
__exportStar(require("./types"), exports);
|
package/lib/utils.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generatePath = exports.warningOnce = exports.warning = exports.readOnly = exports.useIsomorphicEffect = void 0;
|
|
3
4
|
const router_1 = require("@shuvi/router");
|
|
4
5
|
const react_1 = require("react");
|
|
5
6
|
const constants_1 = require("./constants");
|
|
6
7
|
function useIsomorphicEffect(cb, deps) {
|
|
7
8
|
if (typeof window !== 'undefined') {
|
|
8
|
-
react_1.useLayoutEffect(cb, deps);
|
|
9
|
+
(0, react_1.useLayoutEffect)(cb, deps);
|
|
9
10
|
}
|
|
10
11
|
else {
|
|
11
|
-
react_1.useEffect(cb, deps);
|
|
12
|
+
(0, react_1.useEffect)(cb, deps);
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
exports.useIsomorphicEffect = useIsomorphicEffect;
|
|
@@ -43,6 +44,6 @@ exports.warningOnce = warningOnce;
|
|
|
43
44
|
* Returns a path with params interpolated.
|
|
44
45
|
*/
|
|
45
46
|
function generatePath(path, params = {}) {
|
|
46
|
-
return router_1.matchStringify(path, params);
|
|
47
|
+
return (0, router_1.matchStringify)(path, params);
|
|
47
48
|
}
|
|
48
49
|
exports.generatePath = generatePath;
|
package/lib/withRouter.js
CHANGED
|
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.withRouter = void 0;
|
|
6
7
|
const react_1 = __importDefault(require("react"));
|
|
7
8
|
const hooks_1 = require("./hooks");
|
|
8
9
|
function withRouter(ComposedComponent) {
|
|
9
10
|
function WithRouterWrapper(props) {
|
|
10
|
-
return react_1.default.createElement(ComposedComponent, Object.assign({ router: hooks_1.useRouter() }, props));
|
|
11
|
+
return react_1.default.createElement(ComposedComponent, Object.assign({ router: (0, hooks_1.useRouter)() }, props));
|
|
11
12
|
}
|
|
12
13
|
WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps;
|
|
13
14
|
if (process.env.NODE_ENV !== 'production') {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shuvi/router-react",
|
|
3
|
-
"version": "0.0.1-pre.
|
|
3
|
+
"version": "0.0.1-pre.7",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/shuvijs/shuvi.git",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"node": ">= 12.0.0"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@shuvi/router": "0.0.1-pre.
|
|
32
|
-
"@shuvi/service": "0.0.1-pre.
|
|
31
|
+
"@shuvi/router": "0.0.1-pre.7",
|
|
32
|
+
"@shuvi/service": "0.0.1-pre.7"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/react": "^16.9.43",
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"react": ">=16.8"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "b88285b47cd53e0cff2ae55649b37cd1ea258f0b"
|
|
43
43
|
}
|