@rspress/runtime 1.41.0 → 1.41.2

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/Content.js CHANGED
@@ -1,33 +1,28 @@
1
- import { Fragment, jsx } from "react/jsx-runtime";
2
- import { Suspense, memo } from "react";
3
- import { matchRoutes, useLocation } from "react-router-dom";
4
- import siteData from "virtual-site-data";
5
- import { useViewTransition } from "./hooks";
6
- import { normalizeRoutePath } from "./utils";
7
- const { routes } = process.env.__SSR__ ? require("virtual-routes-ssr") : require("virtual-routes");
1
+ import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
+ import * as __WEBPACK_EXTERNAL_MODULE__VIRTUAL_ROUTES__3c8bd3e0__ from "__VIRTUAL_ROUTES__";
3
+ import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_react_router_dom_5358f3fe__ from "react-router-dom";
5
+ import * as __WEBPACK_EXTERNAL_MODULE_virtual_site_data_fa42d4c0__ from "virtual-site-data";
6
+ import * as __WEBPACK_EXTERNAL_MODULE__hooks_js_5a9aefb7__ from "./hooks.js";
7
+ import * as __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__ from "./utils.js";
8
8
  function TransitionContentImpl(props) {
9
- let element = props.el;
10
- if (siteData?.themeConfig?.enableContentAnimation) {
11
- element = useViewTransition(props.el);
12
- }
13
- return element;
9
+ var _siteData_themeConfig;
10
+ let element = props.el;
11
+ if (null === __WEBPACK_EXTERNAL_MODULE_virtual_site_data_fa42d4c0__["default"] || void 0 === __WEBPACK_EXTERNAL_MODULE_virtual_site_data_fa42d4c0__["default"] ? void 0 : null === (_siteData_themeConfig = __WEBPACK_EXTERNAL_MODULE_virtual_site_data_fa42d4c0__["default"].themeConfig) || void 0 === _siteData_themeConfig ? void 0 : _siteData_themeConfig.enableContentAnimation) element = (0, __WEBPACK_EXTERNAL_MODULE__hooks_js_5a9aefb7__.useViewTransition)(props.el);
12
+ return element;
14
13
  }
15
- const TransitionContent = memo(
16
- TransitionContentImpl,
17
- (prevProps, nextProps) => prevProps.el === nextProps.el
18
- );
19
- const Content = ({ fallback = /* @__PURE__ */ jsx(Fragment, {}) }) => {
20
- const { pathname } = useLocation();
21
- const matched = matchRoutes(routes, normalizeRoutePath(pathname));
22
- if (!matched) {
23
- return /* @__PURE__ */ jsx("div", {});
24
- }
25
- const routesElement = matched[0].route.element;
26
- if (!process.env.__REACT_GTE_18__ && process.env.__SSR__) {
27
- return routesElement;
28
- }
29
- return /* @__PURE__ */ jsx(Suspense, { fallback, children: /* @__PURE__ */ jsx(TransitionContent, { el: routesElement }) });
30
- };
31
- export {
32
- Content
14
+ const TransitionContent = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.memo)(TransitionContentImpl, (prevProps, nextProps)=>prevProps.el === nextProps.el);
15
+ const Content = ({ fallback = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {}) })=>{
16
+ const { pathname } = (0, __WEBPACK_EXTERNAL_MODULE_react_router_dom_5358f3fe__.useLocation)();
17
+ const matched = (0, __WEBPACK_EXTERNAL_MODULE_react_router_dom_5358f3fe__.matchRoutes)(__WEBPACK_EXTERNAL_MODULE__VIRTUAL_ROUTES__3c8bd3e0__.routes, (0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.normalizeRoutePath)(pathname));
18
+ if (!matched) return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {});
19
+ const routesElement = matched[0].route.element;
20
+ if (!process.env.__REACT_GTE_18__ && process.env.__SSR__) return routesElement;
21
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_react__.Suspense, {
22
+ fallback: fallback,
23
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(TransitionContent, {
24
+ el: routesElement
25
+ })
26
+ });
33
27
  };
28
+ export { Content };
package/dist/NoSSR.js CHANGED
@@ -1,16 +1,14 @@
1
- import { Fragment, jsx } from "react/jsx-runtime";
2
- import { useEffect, useState } from "react";
1
+ import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
+ import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
3
3
  function NoSSR(props) {
4
- const { children } = props;
5
- const [isMounted, setIsMounted] = useState(false);
6
- useEffect(() => {
7
- setIsMounted(true);
8
- }, []);
9
- if (!isMounted) {
10
- return null;
11
- }
12
- return /* @__PURE__ */ jsx(Fragment, { children });
4
+ const { children } = props;
5
+ const [isMounted, setIsMounted] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(false);
6
+ (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
7
+ setIsMounted(true);
8
+ }, []);
9
+ if (!isMounted) return null;
10
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
11
+ children: children
12
+ });
13
13
  }
14
- export {
15
- NoSSR
16
- };
14
+ export { NoSSR };
package/dist/hooks.js CHANGED
@@ -1,60 +1,48 @@
1
- import {
2
- createContext,
3
- useCallback,
4
- useContext,
5
- useLayoutEffect,
6
- useState
7
- } from "react";
8
- import { flushSync } from "react-dom";
9
- import i18nTextData from "virtual-i18n-text";
10
- const DataContext = createContext({});
11
- const ThemeContext = createContext({});
1
+ import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
2
+ import * as __WEBPACK_EXTERNAL_MODULE_react_dom_7136dc57__ from "react-dom";
3
+ import * as __WEBPACK_EXTERNAL_MODULE_virtual_i18n_text_58811962__ from "virtual-i18n-text";
4
+ const DataContext = (0, __WEBPACK_EXTERNAL_MODULE_react__.createContext)({});
5
+ const ThemeContext = (0, __WEBPACK_EXTERNAL_MODULE_react__.createContext)({});
12
6
  function usePageData() {
13
- const ctx = useContext(DataContext);
14
- return ctx.data;
7
+ const ctx = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(DataContext);
8
+ return ctx.data;
15
9
  }
16
10
  function useLang() {
17
- const ctx = useContext(DataContext);
18
- return ctx.data.page.lang || "";
11
+ const ctx = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(DataContext);
12
+ return ctx.data.page.lang || '';
19
13
  }
20
14
  function useVersion() {
21
- const ctx = useContext(DataContext);
22
- return ctx.data.page.version || "";
15
+ const ctx = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(DataContext);
16
+ return ctx.data.page.version || '';
23
17
  }
24
18
  function useDark() {
25
- const ctx = useContext(ThemeContext);
26
- return ctx.theme === "dark";
19
+ const ctx = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(ThemeContext);
20
+ return 'dark' === ctx.theme;
27
21
  }
28
22
  function useI18n() {
29
- const lang = useLang();
30
- return useCallback((key) => i18nTextData[key][lang], [lang]);
23
+ const lang = useLang();
24
+ return (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((key)=>__WEBPACK_EXTERNAL_MODULE_virtual_i18n_text_58811962__["default"][key][lang], [
25
+ lang
26
+ ]);
31
27
  }
32
28
  function useViewTransition(dom) {
33
- const [element, setElement] = useState(dom);
34
- useLayoutEffect(() => {
35
- if (document.startViewTransition && element !== dom) {
36
- document.startViewTransition(() => {
37
- flushSync(() => {
38
- setElement(dom);
29
+ const [element, setElement] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(dom);
30
+ (0, __WEBPACK_EXTERNAL_MODULE_react__.useLayoutEffect)(()=>{
31
+ if (document.startViewTransition && element !== dom) document.startViewTransition(()=>{
32
+ (0, __WEBPACK_EXTERNAL_MODULE_react_dom_7136dc57__.flushSync)(()=>{
33
+ setElement(dom);
34
+ });
35
+ window.dispatchEvent(new Event('RspressReloadContent'));
39
36
  });
40
- window.dispatchEvent(new Event("RspressReloadContent"));
41
- });
42
- } else {
43
- flushSync(() => {
44
- setElement(dom);
45
- });
46
- window.dispatchEvent(new Event("RspressReloadContent"));
47
- }
48
- }, [dom]);
49
- return element;
37
+ else {
38
+ (0, __WEBPACK_EXTERNAL_MODULE_react_dom_7136dc57__.flushSync)(()=>{
39
+ setElement(dom);
40
+ });
41
+ window.dispatchEvent(new Event('RspressReloadContent'));
42
+ }
43
+ }, [
44
+ dom
45
+ ]);
46
+ return element;
50
47
  }
51
- export {
52
- DataContext,
53
- ThemeContext,
54
- useDark,
55
- useI18n,
56
- useLang,
57
- usePageData,
58
- useVersion,
59
- useViewTransition
60
- };
48
+ export { DataContext, ThemeContext, useDark, useI18n, useLang, usePageData, useVersion, useViewTransition };
package/dist/index.js CHANGED
@@ -1,42 +1,24 @@
1
- export * from "./hooks";
2
- export * from "./Content";
3
- import {
4
- normalizeHrefInRuntime,
5
- normalizeImagePath,
6
- withBase,
7
- removeBase,
8
- addLeadingSlash,
9
- removeTrailingSlash,
10
- normalizeSlash,
11
- isProduction,
12
- normalizeRoutePath,
13
- isEqualPath
14
- } from "./utils";
15
- import {
16
- useLocation,
17
- useNavigate,
18
- matchRoutes,
19
- BrowserRouter,
20
- useSearchParams
21
- } from "react-router-dom";
22
- import { Helmet } from "react-helmet-async";
23
- import { NoSSR } from "./NoSSR";
24
- export {
25
- BrowserRouter,
26
- Helmet,
27
- NoSSR,
28
- addLeadingSlash,
29
- isEqualPath,
30
- isProduction,
31
- matchRoutes,
32
- normalizeHrefInRuntime,
33
- normalizeImagePath,
34
- normalizeRoutePath,
35
- normalizeSlash,
36
- removeBase,
37
- removeTrailingSlash,
38
- useLocation,
39
- useNavigate,
40
- useSearchParams,
41
- withBase
42
- };
1
+ import * as __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__ from "./utils.js";
2
+ import * as __WEBPACK_EXTERNAL_MODULE_react_router_dom_5358f3fe__ from "react-router-dom";
3
+ import * as __WEBPACK_EXTERNAL_MODULE_react_helmet_async_048d06c6__ from "react-helmet-async";
4
+ import * as __WEBPACK_EXTERNAL_MODULE__NoSSR_js_7f7b6e71__ from "./NoSSR.js";
5
+ export * from "./hooks.js";
6
+ export * from "./Content.js";
7
+ var __webpack_exports__BrowserRouter = __WEBPACK_EXTERNAL_MODULE_react_router_dom_5358f3fe__.BrowserRouter;
8
+ var __webpack_exports__Helmet = __WEBPACK_EXTERNAL_MODULE_react_helmet_async_048d06c6__.Helmet;
9
+ var __webpack_exports__NoSSR = __WEBPACK_EXTERNAL_MODULE__NoSSR_js_7f7b6e71__.NoSSR;
10
+ var __webpack_exports__addLeadingSlash = __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.addLeadingSlash;
11
+ var __webpack_exports__isEqualPath = __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.isEqualPath;
12
+ var __webpack_exports__isProduction = __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.isProduction;
13
+ var __webpack_exports__matchRoutes = __WEBPACK_EXTERNAL_MODULE_react_router_dom_5358f3fe__.matchRoutes;
14
+ var __webpack_exports__normalizeHrefInRuntime = __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.normalizeHrefInRuntime;
15
+ var __webpack_exports__normalizeImagePath = __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.normalizeImagePath;
16
+ var __webpack_exports__normalizeRoutePath = __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.normalizeRoutePath;
17
+ var __webpack_exports__normalizeSlash = __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.normalizeSlash;
18
+ var __webpack_exports__removeBase = __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.removeBase;
19
+ var __webpack_exports__removeTrailingSlash = __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.removeTrailingSlash;
20
+ var __webpack_exports__useLocation = __WEBPACK_EXTERNAL_MODULE_react_router_dom_5358f3fe__.useLocation;
21
+ var __webpack_exports__useNavigate = __WEBPACK_EXTERNAL_MODULE_react_router_dom_5358f3fe__.useNavigate;
22
+ var __webpack_exports__useSearchParams = __WEBPACK_EXTERNAL_MODULE_react_router_dom_5358f3fe__.useSearchParams;
23
+ var __webpack_exports__withBase = __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.withBase;
24
+ export { __webpack_exports__BrowserRouter as BrowserRouter, __webpack_exports__Helmet as Helmet, __webpack_exports__NoSSR as NoSSR, __webpack_exports__addLeadingSlash as addLeadingSlash, __webpack_exports__isEqualPath as isEqualPath, __webpack_exports__isProduction as isProduction, __webpack_exports__matchRoutes as matchRoutes, __webpack_exports__normalizeHrefInRuntime as normalizeHrefInRuntime, __webpack_exports__normalizeImagePath as normalizeImagePath, __webpack_exports__normalizeRoutePath as normalizeRoutePath, __webpack_exports__normalizeSlash as normalizeSlash, __webpack_exports__removeBase as removeBase, __webpack_exports__removeTrailingSlash as removeTrailingSlash, __webpack_exports__useLocation as useLocation, __webpack_exports__useNavigate as useNavigate, __webpack_exports__useSearchParams as useSearchParams, __webpack_exports__withBase as withBase };
package/dist/utils.js CHANGED
@@ -1,58 +1,34 @@
1
- import {
2
- addLeadingSlash,
3
- isDataUrl,
4
- isExternalUrl,
5
- isProduction,
6
- normalizeHref,
7
- normalizeSlash,
8
- removeBase as rawRemoveBase,
9
- withBase as rawWithBase,
10
- removeHash,
11
- removeTrailingSlash
12
- } from "@rspress/shared";
13
- import siteData from "virtual-site-data";
1
+ import * as __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__ from "@rspress/shared";
2
+ import * as __WEBPACK_EXTERNAL_MODULE_virtual_site_data_fa42d4c0__ from "virtual-site-data";
14
3
  function normalizeRoutePath(routePath) {
15
- return decodeURIComponent(routePath).replace(/\.html$/, "").replace(/\/index$/, "/");
4
+ return decodeURIComponent(routePath).replace(/\.html$/, '').replace(/\/index$/, '/');
16
5
  }
17
- function withBase(url = "/") {
18
- return rawWithBase(url, siteData.base);
6
+ function withBase(url = '/') {
7
+ return (0, __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.withBase)(url, __WEBPACK_EXTERNAL_MODULE_virtual_site_data_fa42d4c0__["default"].base);
19
8
  }
20
9
  function removeBase(url) {
21
- return rawRemoveBase(url, siteData.base);
10
+ return (0, __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.removeBase)(url, __WEBPACK_EXTERNAL_MODULE_virtual_site_data_fa42d4c0__["default"].base);
22
11
  }
23
12
  function isEqualPath(a, b) {
24
- return withBase(normalizeHrefInRuntime(removeHash(a))) === withBase(normalizeHrefInRuntime(removeHash(b)));
13
+ return withBase(normalizeHrefInRuntime((0, __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.removeHash)(a))) === withBase(normalizeHrefInRuntime((0, __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.removeHash)(b)));
25
14
  }
26
15
  function normalizeHrefInRuntime(a) {
27
- const cleanUrls = Boolean(siteData?.route?.cleanUrls);
28
- return normalizeHref(a, cleanUrls);
16
+ var _siteData_route;
17
+ const cleanUrls = Boolean(null === __WEBPACK_EXTERNAL_MODULE_virtual_site_data_fa42d4c0__["default"] || void 0 === __WEBPACK_EXTERNAL_MODULE_virtual_site_data_fa42d4c0__["default"] ? void 0 : null === (_siteData_route = __WEBPACK_EXTERNAL_MODULE_virtual_site_data_fa42d4c0__["default"].route) || void 0 === _siteData_route ? void 0 : _siteData_route.cleanUrls);
18
+ return (0, __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.normalizeHref)(a, cleanUrls);
29
19
  }
30
20
  function normalizeImagePath(imagePath) {
31
- const isProd = isProduction();
32
- if (!isProd) {
33
- return imagePath;
34
- }
35
- if (isAbsoluteUrl(imagePath)) {
36
- return imagePath;
37
- }
38
- if (!imagePath.startsWith("/")) {
39
- return imagePath;
40
- }
41
- return withBase(imagePath);
21
+ const isProd = (0, __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.isProduction)();
22
+ if (!isProd) return imagePath;
23
+ if (isAbsoluteUrl(imagePath)) return imagePath;
24
+ if (!imagePath.startsWith('/')) return imagePath;
25
+ return withBase(imagePath);
42
26
  }
43
27
  function isAbsoluteUrl(path) {
44
- return isExternalUrl(path) || isDataUrl(path) || path.startsWith("//");
28
+ return (0, __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.isExternalUrl)(path) || (0, __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.isDataUrl)(path) || path.startsWith('//');
45
29
  }
46
- export {
47
- addLeadingSlash,
48
- isAbsoluteUrl,
49
- isEqualPath,
50
- isProduction,
51
- normalizeHrefInRuntime,
52
- normalizeImagePath,
53
- normalizeRoutePath,
54
- normalizeSlash,
55
- removeBase,
56
- removeTrailingSlash,
57
- withBase
58
- };
30
+ var __webpack_exports__addLeadingSlash = __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.addLeadingSlash;
31
+ var __webpack_exports__isProduction = __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.isProduction;
32
+ var __webpack_exports__normalizeSlash = __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.normalizeSlash;
33
+ var __webpack_exports__removeTrailingSlash = __WEBPACK_EXTERNAL_MODULE__rspress_shared_baa012d0__.removeTrailingSlash;
34
+ export { isAbsoluteUrl, isEqualPath, normalizeHrefInRuntime, normalizeImagePath, normalizeRoutePath, removeBase, withBase, __webpack_exports__addLeadingSlash as addLeadingSlash, __webpack_exports__isProduction as isProduction, __webpack_exports__normalizeSlash as normalizeSlash, __webpack_exports__removeTrailingSlash as removeTrailingSlash };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rspress/runtime",
3
- "version": "1.41.0",
3
+ "version": "1.41.2",
4
4
  "description": "The Runtime of Rspress Documentation Framework",
5
5
  "bugs": "https://github.com/web-infra-dev/rspress/issues",
6
6
  "repository": {
@@ -40,10 +40,12 @@
40
40
  "react-dom": "^18.3.1",
41
41
  "react-helmet-async": "^1.3.0",
42
42
  "react-router-dom": "^6.29.0",
43
- "@rspress/shared": "1.41.0"
43
+ "@rspress/shared": "1.41.2"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@modern-js/tsconfig": "2.64.0",
47
+ "@rsbuild/plugin-react": "~1.1.0",
48
+ "@rslib/core": "0.4.1",
47
49
  "@types/jest": "~29.5.14",
48
50
  "@types/react": "^18.3.18",
49
51
  "@types/react-dom": "^18.3.5",
@@ -59,9 +61,8 @@
59
61
  },
60
62
  "jsnext:source": "./src/index.ts",
61
63
  "scripts": {
62
- "build": "modern build",
63
- "dev": "modern build -w",
64
- "reset": "rimraf ./**/node_modules",
65
- "test": "echo nothing"
64
+ "build": "rslib build",
65
+ "dev": "rslib build -w",
66
+ "reset": "rimraf ./**/node_modules"
66
67
  }
67
68
  }
package/src/Content.tsx CHANGED
@@ -1,3 +1,5 @@
1
+ // @ts-expect-error __VIRTUAL_ROUTES__ will be determined at build time
2
+ import { routes } from '__VIRTUAL_ROUTES__';
1
3
  /* eslint-disable @typescript-eslint/no-var-requires */
2
4
  /* eslint-disable @typescript-eslint/no-require-imports */
3
5
  import { type ReactElement, type ReactNode, Suspense, memo } from 'react';
@@ -6,10 +8,6 @@ import siteData from 'virtual-site-data';
6
8
  import { useViewTransition } from './hooks';
7
9
  import { normalizeRoutePath } from './utils';
8
10
 
9
- const { routes } = process.env.__SSR__
10
- ? (require('virtual-routes-ssr') as typeof import('virtual-routes-ssr'))
11
- : (require('virtual-routes') as typeof import('virtual-routes'));
12
-
13
11
  function TransitionContentImpl(props: { el: ReactElement }) {
14
12
  let element = props.el;
15
13
  if (siteData?.themeConfig?.enableContentAnimation) {
@@ -26,7 +24,10 @@ const TransitionContent = memo(
26
24
 
27
25
  export const Content = ({ fallback = <></> }: { fallback?: ReactNode }) => {
28
26
  const { pathname } = useLocation();
29
- const matched = matchRoutes(routes, normalizeRoutePath(pathname));
27
+ const matched = matchRoutes(
28
+ routes as typeof import('virtual-routes')['routes'],
29
+ normalizeRoutePath(pathname),
30
+ );
30
31
  if (!matched) {
31
32
  return <div></div>;
32
33
  }