@vlian/router 1.0.13 → 1.0.15

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.
@@ -1,4 +1,4 @@
1
- import { DOMRouterOpts, type MemoryRouterOpts } from 'react-router-dom';
1
+ import { DOMRouterOpts, type DataRouter, type MemoryRouterOpts } from 'react-router-dom';
2
2
  import { navigator } from "../provider";
3
3
  import React from 'react';
4
4
  import type { RouteItem } from '../types';
@@ -8,6 +8,15 @@ declare global {
8
8
  }
9
9
  }
10
10
  export type RouterMode = 'browser' | 'hash' | 'memory';
11
+ /**
12
+ * RouterProvider 通过 ref 暴露的接口
13
+ */
14
+ export interface RouterProviderRef {
15
+ /**
16
+ * 获取路由实例
17
+ */
18
+ getRouter: () => DataRouter | undefined;
19
+ }
11
20
  export type RouterProviderProps = {
12
21
  fetchRoutes: () => Promise<RouteItem[]>;
13
22
  imports: Record<string, any>;
@@ -21,5 +30,5 @@ export type RouterProviderProps = {
21
30
  loadingColor?: string;
22
31
  loadingOpacity?: number;
23
32
  };
24
- export declare const RouterProvider: React.FC<RouterProviderProps>;
33
+ export declare const RouterProvider: React.ForwardRefExoticComponent<RouterProviderProps & React.RefAttributes<RouterProviderRef>>;
25
34
  //# sourceMappingURL=router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAA0G,KAAK,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAC9K,OAAO,EAAqB,SAAS,EAAC,MAAM,aAAa,CAAC;AAC1D,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI1C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,OAAO,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;KACvC;CACF;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,GAAG,gBAAgB,CAAC;IAC3C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAA;AAED,eAAO,MAAM,cAAc,EAAC,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmEvD,CAAA"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,KAAK,UAAU,EAAyF,KAAK,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAC9K,OAAO,EAAqB,SAAS,EAAC,MAAM,aAAa,CAAC;AAC1D,OAAO,KAA6D,MAAM,OAAO,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI1C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,OAAO,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;KACvC;CACF;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,GAAG,gBAAgB,CAAC;IAC3C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAA;AAED,eAAO,MAAM,cAAc,+FAwEzB,CAAC"}
@@ -46,10 +46,10 @@ function _unsupported_iterable_to_array(o, minLen) {
46
46
  }
47
47
  import { RouterProvider as Provider, createBrowserRouter, createHashRouter, createMemoryRouter } from 'react-router-dom';
48
48
  import { useRouterTransform, navigator } from "../provider";
49
- import React, { useState, useEffect } from 'react';
49
+ import React, { useState, useEffect, forwardRef, useImperativeHandle } from 'react';
50
50
  import { staticRoutes as defaultStaticRoutes } from './routes';
51
51
  import { useSquareRotate2Styles } from '../styles/square-rotate';
52
- export var RouterProvider = function(param) {
52
+ export var RouterProvider = /*#__PURE__*/ forwardRef(function(param, ref) {
53
53
  var fetchRoutes = param.fetchRoutes, imports = param.imports, _param_rootRoutes = param.rootRoutes, rootRoutes = _param_rootRoutes === void 0 ? '/' : _param_rootRoutes, _param_staticRoutes = param.staticRoutes, staticRoutes = _param_staticRoutes === void 0 ? defaultStaticRoutes : _param_staticRoutes, options = param.options, _param_routerMode = param.routerMode, routerMode = _param_routerMode === void 0 ? 'browser' : _param_routerMode, _param_isSubApp = param.isSubApp, isSubApp = _param_isSubApp === void 0 ? false : _param_isSubApp, loadingRender = param.loadingRender, _param_loadingSize = param.loadingSize, loadingSize = _param_loadingSize === void 0 ? '24px' : _param_loadingSize, _param_loadingColor = param.loadingColor, loadingColor = _param_loadingColor === void 0 ? 'currentColor' : _param_loadingColor, _param_loadingOpacity = param.loadingOpacity, loadingOpacity = _param_loadingOpacity === void 0 ? 0.25 : _param_loadingOpacity;
54
54
  var _useState = _sliced_to_array(useState(), 2), dataRouter = _useState[0], setDataRouter = _useState[1];
55
55
  var styles = useSquareRotate2Styles().styles;
@@ -88,6 +88,16 @@ export var RouterProvider = function(param) {
88
88
  options,
89
89
  isSubApp
90
90
  ]);
91
+ // 通过 ref 暴露路由实例
92
+ useImperativeHandle(ref, function() {
93
+ return {
94
+ getRouter: function() {
95
+ return dataRouter;
96
+ }
97
+ };
98
+ }, [
99
+ dataRouter
100
+ ]);
91
101
  if (!routeObject || !dataRouter) {
92
102
  return /*#__PURE__*/ React.createElement("div", {
93
103
  className: "w-full h-full flex-center",
@@ -110,4 +120,5 @@ export var RouterProvider = function(param) {
110
120
  return /*#__PURE__*/ React.createElement(Provider, {
111
121
  router: dataRouter
112
122
  });
113
- };
123
+ });
124
+ RouterProvider.displayName = 'RouterProvider';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vlian/router",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "description": "基于 React Router 的路由管理包,支持动态路由、权限控制、路由转换等功能",
5
5
  "keywords": [
6
6
  "router",