@j2inn/fin5-ui-utils 2.0.2-beta.0 → 2.0.2-beta.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/react/components/navigation/ReactRouterLayout.d.ts +5 -2
- package/dist/react/components/navigation/ReactRouterLayout.js +17 -3
- package/dist/react/components/navigation/ReactRouterLayout.js.map +1 -1
- package/dist_es/react/components/navigation/ReactRouterLayout.d.ts +5 -2
- package/dist_es/react/components/navigation/ReactRouterLayout.js +17 -3
- package/dist_es/react/components/navigation/ReactRouterLayout.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,8 +2,11 @@ import type { Location } from '@remix-run/router';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { BasicLayoutProps } from './BasicLayout';
|
|
4
4
|
import { MenuPage } from './MenuPage';
|
|
5
|
-
export
|
|
6
|
-
|
|
5
|
+
export declare type ReactRouterMenuPage = MenuPage & {
|
|
6
|
+
route: string;
|
|
7
|
+
};
|
|
8
|
+
export interface ReactRouterLayoutProps extends BasicLayoutProps<ReactRouterMenuPage> {
|
|
9
|
+
isSelectedRoute?: (page: ReactRouterMenuPage, location: Location) => boolean;
|
|
7
10
|
}
|
|
8
11
|
/**
|
|
9
12
|
* This hook can be used with react-router/BasicLayout,
|
|
@@ -54,7 +54,7 @@ const useLocationUpdate = () => {
|
|
|
54
54
|
}, [location]);
|
|
55
55
|
};
|
|
56
56
|
exports.useLocationUpdate = useLocationUpdate;
|
|
57
|
-
const useSelectedRoutes = (pages, isSelectedRoute = (page, location) => location.pathname.includes(
|
|
57
|
+
const useSelectedRoutes = (pages, isSelectedRoute = (page, location) => location.pathname.includes(page.route)) => {
|
|
58
58
|
const location = (0, react_router_1.useLocation)();
|
|
59
59
|
const flatPages = (0, react_1.useMemo)(() => (0, MenuPage_1.pageTreeToPageList)(pages), [pages]);
|
|
60
60
|
return (0, react_1.useMemo)(() => {
|
|
@@ -80,9 +80,23 @@ exports.getRoute = getRoute;
|
|
|
80
80
|
const ReactRouterLayout = ({ isSelectedRoute, pages = [], onSelect, ...otherProps }) => {
|
|
81
81
|
const navigate = (0, react_router_1.useNavigate)();
|
|
82
82
|
const selectedRoutes = useSelectedRoutes(pages, isSelectedRoute);
|
|
83
|
+
const pageKeyRouteMap = (0, react_1.useMemo)(() => {
|
|
84
|
+
const flatPages = (0, MenuPage_1.pageTreeToPageList)(pages);
|
|
85
|
+
const result = new Map();
|
|
86
|
+
flatPages.forEach((page) => {
|
|
87
|
+
result.set(page.key, page.route);
|
|
88
|
+
});
|
|
89
|
+
return result;
|
|
90
|
+
}, [pages]);
|
|
83
91
|
const defaultOnSelect = (0, react_1.useCallback)((key) => {
|
|
84
|
-
|
|
85
|
-
|
|
92
|
+
const route = pageKeyRouteMap.get(key);
|
|
93
|
+
if (route) {
|
|
94
|
+
navigate(route);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
console.warn('Could not find route for page key', key, 'pages', pages);
|
|
98
|
+
}
|
|
99
|
+
}, [navigate, pageKeyRouteMap]);
|
|
86
100
|
return (react_1.default.createElement(BasicLayout_1.BasicLayout, { ...otherProps, pages: pages, onSelect: onSelect ?? defaultOnSelect, selectedPages: selectedRoutes },
|
|
87
101
|
react_1.default.createElement(react_router_1.Outlet, null)));
|
|
88
102
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactRouterLayout.js","sourceRoot":"","sources":["../../../../src/react/components/navigation/ReactRouterLayout.tsx"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,+CAA8D;AAC9D,+CAA+D;AAC/D,4FAKoD;AACpD,+CAA6D;AAC7D,yCAAyD;
|
|
1
|
+
{"version":3,"file":"ReactRouterLayout.js","sourceRoot":"","sources":["../../../../src/react/components/navigation/ReactRouterLayout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,11 @@ import type { Location } from '@remix-run/router';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { BasicLayoutProps } from './BasicLayout';
|
|
4
4
|
import { MenuPage } from './MenuPage';
|
|
5
|
-
export
|
|
6
|
-
|
|
5
|
+
export declare type ReactRouterMenuPage = MenuPage & {
|
|
6
|
+
route: string;
|
|
7
|
+
};
|
|
8
|
+
export interface ReactRouterLayoutProps extends BasicLayoutProps<ReactRouterMenuPage> {
|
|
9
|
+
isSelectedRoute?: (page: ReactRouterMenuPage, location: Location) => boolean;
|
|
7
10
|
}
|
|
8
11
|
/**
|
|
9
12
|
* This hook can be used with react-router/BasicLayout,
|
|
@@ -27,7 +27,7 @@ export const useLocationUpdate = () => {
|
|
|
27
27
|
}
|
|
28
28
|
}, [location]);
|
|
29
29
|
};
|
|
30
|
-
const useSelectedRoutes = (pages, isSelectedRoute = (page, location) => location.pathname.includes(
|
|
30
|
+
const useSelectedRoutes = (pages, isSelectedRoute = (page, location) => location.pathname.includes(page.route)) => {
|
|
31
31
|
const location = useLocation();
|
|
32
32
|
const flatPages = useMemo(() => pageTreeToPageList(pages), [pages]);
|
|
33
33
|
return useMemo(() => {
|
|
@@ -52,9 +52,23 @@ export const getRoute = (route) => {
|
|
|
52
52
|
export const ReactRouterLayout = ({ isSelectedRoute, pages = [], onSelect, ...otherProps }) => {
|
|
53
53
|
const navigate = useNavigate();
|
|
54
54
|
const selectedRoutes = useSelectedRoutes(pages, isSelectedRoute);
|
|
55
|
+
const pageKeyRouteMap = useMemo(() => {
|
|
56
|
+
const flatPages = pageTreeToPageList(pages);
|
|
57
|
+
const result = new Map();
|
|
58
|
+
flatPages.forEach((page) => {
|
|
59
|
+
result.set(page.key, page.route);
|
|
60
|
+
});
|
|
61
|
+
return result;
|
|
62
|
+
}, [pages]);
|
|
55
63
|
const defaultOnSelect = useCallback((key) => {
|
|
56
|
-
|
|
57
|
-
|
|
64
|
+
const route = pageKeyRouteMap.get(key);
|
|
65
|
+
if (route) {
|
|
66
|
+
navigate(route);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
console.warn('Could not find route for page key', key, 'pages', pages);
|
|
70
|
+
}
|
|
71
|
+
}, [navigate, pageKeyRouteMap]);
|
|
58
72
|
return (React.createElement(BasicLayout, { ...otherProps, pages: pages, onSelect: onSelect ?? defaultOnSelect, selectedPages: selectedRoutes },
|
|
59
73
|
React.createElement(Outlet, null)));
|
|
60
74
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactRouterLayout.js","sourceRoot":"","sources":["../../../../src/react/components/navigation/ReactRouterLayout.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EACN,SAAS,EACT,kBAAkB,EAClB,0BAA0B,EAC1B,cAAc,GACd,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAY,kBAAkB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"ReactRouterLayout.js","sourceRoot":"","sources":["../../../../src/react/components/navigation/ReactRouterLayout.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED