@umijs/renderer-react 4.0.33 → 4.0.35

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.
@@ -14,6 +14,7 @@ interface IAppContextType {
14
14
  }
15
15
  export declare const AppContext: React.Context<IAppContextType>;
16
16
  export declare function useAppData(): IAppContextType;
17
+ export declare function useSelectedRoutes(): import("react-router-dom").RouteMatch<string>[];
17
18
  export declare function useServerLoaderData(): {
18
19
  data: any;
19
20
  };
@@ -1,9 +1,20 @@
1
1
  import React from 'react';
2
2
  import { useRouteData } from "./routeContext";
3
+ import { useLocation, matchRoutes } from 'react-router-dom';
3
4
  export var AppContext = /*#__PURE__*/React.createContext({});
4
5
  export function useAppData() {
5
6
  return React.useContext(AppContext);
6
7
  }
8
+ export function useSelectedRoutes() {
9
+ var location = useLocation();
10
+
11
+ var _useAppData = useAppData(),
12
+ clientRoutes = _useAppData.clientRoutes; // use `useLocation` get location without `basename`, not need `basename` param
13
+
14
+
15
+ var routes = matchRoutes(clientRoutes, location.pathname);
16
+ return routes || [];
17
+ }
7
18
  export function useServerLoaderData() {
8
19
  var route = useRouteData();
9
20
  var appData = useAppData();
package/dist/browser.d.ts CHANGED
@@ -63,6 +63,10 @@ export declare type RenderClientOpts = {
63
63
  * 此模式下,路由组件的 props 会包含 location、match、history 和 params 属性,和 react-router 5 的保持一致。
64
64
  */
65
65
  reactRouter5Compat?: boolean;
66
+ /**
67
+ * 应用渲染完成的回调函数
68
+ */
69
+ callback?: () => void;
66
70
  };
67
71
  /**
68
72
  * 执行 react dom 的 render 方法
package/dist/browser.js CHANGED
@@ -1,8 +1,8 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
- import _createForOfIteratorHelper from "@babel/runtime/helpers/createForOfIteratorHelper";
4
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
- import React, { useCallback, useEffect, useState } from 'react'; // compatible with < react@18 in @umijs/preset-umi/src/features/react
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
+ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
4
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
+ import React, { useCallback, useEffect, useLayoutEffect, useState } from 'react'; // compatible with < react@18 in @umijs/preset-umi/src/features/react
6
6
 
7
7
  import { HelmetProvider } from 'react-helmet-async';
8
8
  import ReactDOM from 'react-dom/client';
@@ -31,10 +31,10 @@ function BrowserRoutes(props) {
31
31
  state = _React$useState2[0],
32
32
  setState = _React$useState2[1];
33
33
 
34
- React.useLayoutEffect(function () {
34
+ useLayoutEffect(function () {
35
35
  return history.listen(setState);
36
36
  }, [history]);
37
- React.useLayoutEffect(function () {
37
+ useLayoutEffect(function () {
38
38
  function onRouteChange(opts) {
39
39
  props.pluginManager.applyPlugins({
40
40
  key: 'onRouteChange',
@@ -234,6 +234,9 @@ var getBrowser = function getBrowser(opts, routesElement) {
234
234
  handleRouteChange(e.location.pathname);
235
235
  });
236
236
  }, []);
237
+ useLayoutEffect(function () {
238
+ if (typeof opts.callback === 'function') opts.callback();
239
+ }, []);
237
240
  return /*#__PURE__*/React.createElement(HelmetProvider, {
238
241
  context: {}
239
242
  }, /*#__PURE__*/React.createElement(AppContext.Provider, {
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { createBrowserHistory, createHashHistory, createMemoryHistory, type History, } from 'history';
2
2
  export { createSearchParams, generatePath, matchPath, matchRoutes, Navigate, NavLink, Outlet, resolvePath, useLocation, useMatch, useNavigate, useOutlet, useOutletContext, useParams, useResolvedPath, useRoutes, useSearchParams, } from 'react-router-dom';
3
3
  export { Helmet } from 'react-helmet-async';
4
- export { useAppData, useClientLoaderData, useServerLoaderData, } from './appContext';
4
+ export { useAppData, useSelectedRoutes, useClientLoaderData, useServerLoaderData, } from './appContext';
5
5
  export { renderClient, __getRoot } from './browser';
6
6
  export { LinkWithPrefetch as Link } from './link';
7
7
  export { useRouteData } from './routeContext';
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  export { createBrowserHistory, createHashHistory, createMemoryHistory } from 'history';
2
2
  export { createSearchParams, generatePath, matchPath, matchRoutes, Navigate, NavLink, Outlet, resolvePath, useLocation, useMatch, useNavigate, useOutlet, useOutletContext, useParams, useResolvedPath, useRoutes, useSearchParams } from 'react-router-dom';
3
3
  export { Helmet } from 'react-helmet-async';
4
- export { useAppData, useClientLoaderData, useServerLoaderData } from "./appContext";
4
+ export { useAppData, useSelectedRoutes, useClientLoaderData, useServerLoaderData } from "./appContext";
5
5
  export { renderClient, __getRoot } from "./browser";
6
6
  export { LinkWithPrefetch as Link } from "./link";
7
7
  export { useRouteData } from "./routeContext";
package/dist/server.js CHANGED
@@ -1,6 +1,6 @@
1
- import _regeneratorRuntime from "@babel/runtime/helpers/regeneratorRuntime";
2
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
1
+ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
4
  import React from 'react';
5
5
  import { HelmetProvider } from 'react-helmet-async';
6
6
  import { StaticRouter } from 'react-router-dom/server';
@@ -1,3 +1,3 @@
1
1
  export declare function __useFetcher(): {
2
- load(path?: string | undefined): void;
2
+ load(path?: string): void;
3
3
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umijs/renderer-react",
3
- "version": "4.0.33",
3
+ "version": "4.0.35",
4
4
  "description": "@umijs/renderer-react",
5
5
  "homepage": "https://github.com/umijs/umi/tree/master/packages/renderer-react#readme",
6
6
  "bugs": "https://github.com/umijs/umi/issues",