@xfe-repo/web-router 1.0.2 → 1.0.5

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/dist/index.d.mts CHANGED
@@ -1,16 +1,21 @@
1
1
  import { History } from 'history';
2
2
  import { LoadableComponent, loadableReady } from '@loadable/component';
3
3
  import { ParsedQuery } from 'query-string';
4
+ import React, { ReactElement, ComponentType } from 'react';
4
5
  import { RegisterComponentStatic } from '@xfe-repo/web-register';
5
6
  export * from 'react-router-dom';
6
- import React, { ReactElement, ComponentType } from 'react';
7
7
 
8
8
  type PageComponent = LoadableComponent<any> & RegisterComponentStatic;
9
9
  type RouteConfig = {
10
10
  path: string;
11
11
  Component: PageComponent;
12
12
  };
13
- declare const getRoutes: (pagesIndexPath: string[], getPageComponents: (path: string) => Promise<any>) => RouteConfig[];
13
+ type GetRoutesConfig = {
14
+ pagesIndexPath: string[];
15
+ getPageComponents: (path: string) => Promise<any>;
16
+ fallback?: ReactElement;
17
+ };
18
+ declare const getRoutes: (config: GetRoutesConfig) => RouteConfig[];
14
19
 
15
20
  type RouterProps = {
16
21
  navigator: NavigatorType;
@@ -50,4 +55,4 @@ declare function createNavigator(options: CreateNavigatorOptions): NavigatorType
50
55
  declare const getClientNavigator: () => NavigatorType;
51
56
  declare const routerReady: typeof loadableReady;
52
57
 
53
- export { type CreateNavigatorOptions, Link, type NavigatorStack, type NavigatorType, type PageComponent, type RouteConfig, Router, createNavigator, getClientNavigator, getRoutes, routerReady };
58
+ export { type CreateNavigatorOptions, type GetRoutesConfig, Link, type NavigatorStack, type NavigatorType, type PageComponent, type RouteConfig, Router, createNavigator, getClientNavigator, getRoutes, routerReady };
package/dist/index.d.ts CHANGED
@@ -1,16 +1,21 @@
1
1
  import { History } from 'history';
2
2
  import { LoadableComponent, loadableReady } from '@loadable/component';
3
3
  import { ParsedQuery } from 'query-string';
4
+ import React, { ReactElement, ComponentType } from 'react';
4
5
  import { RegisterComponentStatic } from '@xfe-repo/web-register';
5
6
  export * from 'react-router-dom';
6
- import React, { ReactElement, ComponentType } from 'react';
7
7
 
8
8
  type PageComponent = LoadableComponent<any> & RegisterComponentStatic;
9
9
  type RouteConfig = {
10
10
  path: string;
11
11
  Component: PageComponent;
12
12
  };
13
- declare const getRoutes: (pagesIndexPath: string[], getPageComponents: (path: string) => Promise<any>) => RouteConfig[];
13
+ type GetRoutesConfig = {
14
+ pagesIndexPath: string[];
15
+ getPageComponents: (path: string) => Promise<any>;
16
+ fallback?: ReactElement;
17
+ };
18
+ declare const getRoutes: (config: GetRoutesConfig) => RouteConfig[];
14
19
 
15
20
  type RouterProps = {
16
21
  navigator: NavigatorType;
@@ -50,4 +55,4 @@ declare function createNavigator(options: CreateNavigatorOptions): NavigatorType
50
55
  declare const getClientNavigator: () => NavigatorType;
51
56
  declare const routerReady: typeof loadableReady;
52
57
 
53
- export { type CreateNavigatorOptions, Link, type NavigatorStack, type NavigatorType, type PageComponent, type RouteConfig, Router, createNavigator, getClientNavigator, getRoutes, routerReady };
58
+ export { type CreateNavigatorOptions, type GetRoutesConfig, Link, type NavigatorStack, type NavigatorType, type PageComponent, type RouteConfig, Router, createNavigator, getClientNavigator, getRoutes, routerReady };
package/dist/index.js CHANGED
@@ -287,10 +287,9 @@ var import_react_router_dom3 = require("react-router-dom");
287
287
  var import_query_string = __toESM(require("query-string"));
288
288
  __reExport(src_exports, require("react-router-dom"), module.exports);
289
289
  // src/routes.ts
290
- var import_react = require("react");
291
290
  var import_component = __toESM(require("@loadable/component"));
292
- var import_web_components = require("@xfe-repo/web-components");
293
- var getRoutes = function(pagesIndexPath, getPageComponents) {
291
+ var getRoutes = function(config) {
292
+ var pagesIndexPath = config.pagesIndexPath, getPageComponents = config.getPageComponents, fallback = config.fallback;
294
293
  var routes = [];
295
294
  pagesIndexPath.forEach(function(pageIndexPath) {
296
295
  if (pageIndexPath.startsWith("./")) return;
@@ -299,31 +298,29 @@ var getRoutes = function(pagesIndexPath, getPageComponents) {
299
298
  var pageComponent = (0, import_component.default)(function() {
300
299
  return getPageComponents(pageRelativePath);
301
300
  }, {
302
- fallback: (0, import_react.createElement)(import_web_components.Loading, {
303
- loading: true
304
- })
301
+ fallback: fallback
305
302
  });
306
303
  var routerPath = "/".concat(pageRelativePath);
307
304
  if (routerPath === "/home" || routerPath === "/index") routerPath = "/";
308
- var config = {
305
+ var config2 = {
309
306
  path: routerPath,
310
307
  Component: pageComponent
311
308
  };
312
- routes.push(config);
309
+ routes.push(config2);
313
310
  });
314
311
  return routes;
315
312
  };
316
313
  // src/Router.tsx
317
- var import_react2 = require("react");
314
+ var import_react = require("react");
318
315
  var import_react_router_dom = require("react-router-dom");
319
316
  var import_jsx_runtime = require("react/jsx-runtime");
320
- var Router = (0, import_react2.memo)(function(props) {
317
+ var Router = (0, import_react.memo)(function(props) {
321
318
  var navigator = props.navigator, routes = props.routes, _props_basename = props.basename, basename = _props_basename === void 0 ? "/" : _props_basename, children = props.children, NotFoundPageComponent = props.NotFoundPageComponent;
322
- var _ref = _sliced_to_array((0, import_react2.useState)({
319
+ var _ref = _sliced_to_array((0, import_react.useState)({
323
320
  action: navigator.action,
324
321
  location: navigator.location
325
322
  }), 2), navigatorState = _ref[0], setNavigatorState = _ref[1];
326
- (0, import_react2.useEffect)(function() {
323
+ (0, import_react.useEffect)(function() {
327
324
  return navigator.listen(setNavigatorState);
328
325
  }, [
329
326
  navigator
@@ -355,12 +352,12 @@ var Router = (0, import_react2.memo)(function(props) {
355
352
  });
356
353
  });
357
354
  // src/Link.tsx
358
- var import_react3 = require("react");
355
+ var import_react2 = require("react");
359
356
  var import_react_router_dom2 = require("react-router-dom");
360
357
  var import_jsx_runtime2 = require("react/jsx-runtime");
361
358
  var Link = function(props) {
362
359
  var to = props.to, children = props.children, reLaunch = props.reLaunch, preload = props.preload, replace = props.replace, className = props.className;
363
- var _navigator2 = (0, import_react3.useMemo)(function() {
360
+ var _navigator2 = (0, import_react2.useMemo)(function() {
364
361
  return getClientNavigator();
365
362
  }, []);
366
363
  if (/http(s)?:\/{2}/.test(to)) {
package/dist/index.mjs CHANGED
@@ -6,27 +6,24 @@ import queryString from "query-string";
6
6
  export * from "react-router-dom";
7
7
 
8
8
  // src/routes.ts
9
- import { createElement } from "react";
10
9
  import loadable from "@loadable/component";
11
- import { Loading } from "@xfe-repo/web-components";
12
- var getRoutes = (pagesIndexPath, getPageComponents) => {
10
+ var getRoutes = (config) => {
11
+ const { pagesIndexPath, getPageComponents, fallback } = config;
13
12
  const routes = [];
14
13
  pagesIndexPath.forEach((pageIndexPath) => {
15
14
  if (pageIndexPath.startsWith("./"))
16
15
  return;
17
16
  const regExpResult = pageIndexPath.match(/(?<=pages\/).*(?=\/index.(?:tsx|js))/);
18
17
  const pageRelativePath = regExpResult ? regExpResult[0].toLowerCase() : "";
19
- const pageComponent = loadable(() => getPageComponents(pageRelativePath), {
20
- fallback: createElement(Loading, { loading: true })
21
- });
18
+ const pageComponent = loadable(() => getPageComponents(pageRelativePath), { fallback });
22
19
  let routerPath = `/${pageRelativePath}`;
23
20
  if (routerPath === "/home" || routerPath === "/index")
24
21
  routerPath = "/";
25
- const config = {
22
+ const config2 = {
26
23
  path: routerPath,
27
24
  Component: pageComponent
28
25
  };
29
- routes.push(config);
26
+ routes.push(config2);
30
27
  });
31
28
  return routes;
32
29
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xfe-repo/web-router",
3
- "version": "1.0.2",
3
+ "version": "1.0.5",
4
4
  "sideEffects": false,
5
5
  "exports": {
6
6
  ".": {
@@ -25,8 +25,7 @@
25
25
  "@loadable/component": "^5.15.3",
26
26
  "history": "^5.3.0",
27
27
  "query-string": "^7.1.3",
28
- "react-router-dom": "^6.11.1",
29
- "@xfe-repo/web-components": "1.0.2"
28
+ "react-router-dom": "^6.11.1"
30
29
  },
31
30
  "devDependencies": {
32
31
  "@types/loadable__component": "^5.13.8",
@@ -34,7 +33,7 @@
34
33
  "@types/react": "^18.2.0",
35
34
  "@xfe-repo/web-register": "1.0.3",
36
35
  "@xfe-repo/typescript-config": "0.0.3",
37
- "@xfe-repo/eslint-config": "0.0.1"
36
+ "@xfe-repo/eslint-config": "0.0.2"
38
37
  },
39
38
  "scripts": {
40
39
  "build": "tsup",