@proteinjs/ui 4.1.0 → 4.1.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/generated/index.js +1 -1
- package/dist/generated/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/container/PageContainer.d.ts +17 -3
- package/dist/src/container/PageContainer.d.ts.map +1 -1
- package/dist/src/container/PageContainer.js +9 -4
- package/dist/src/container/PageContainer.js.map +1 -1
- package/dist/src/formatters.d.ts +37 -0
- package/dist/src/formatters.d.ts.map +1 -0
- package/dist/src/formatters.js +54 -0
- package/dist/src/formatters.js.map +1 -0
- package/dist/src/router/Page.d.ts +0 -2
- package/dist/src/router/Page.d.ts.map +1 -1
- package/dist/src/router/Router.d.ts.map +1 -1
- package/dist/src/router/Router.js +3 -4
- package/dist/src/router/Router.js.map +1 -1
- package/dist/src/table/InfiniteScroll.d.ts.map +1 -1
- package/dist/src/table/InfiniteScroll.js +4 -7
- package/dist/src/table/InfiniteScroll.js.map +1 -1
- package/dist/src/table/Table.d.ts +10 -4
- package/dist/src/table/Table.d.ts.map +1 -1
- package/dist/src/table/Table.js +31 -17
- package/dist/src/table/Table.js.map +1 -1
- package/dist/src/table/tableData.d.ts +7 -3
- package/dist/src/table/tableData.d.ts.map +1 -1
- package/dist/src/table/tableData.js +10 -7
- package/dist/src/table/tableData.js.map +1 -1
- package/generated/index.ts +1 -1
- package/index.ts +2 -0
- package/package.json +5 -6
- package/src/container/PageContainer.tsx +34 -5
- package/src/formatters.ts +69 -0
- package/src/router/Page.ts +0 -1
- package/src/router/Router.tsx +4 -5
- package/src/table/InfiniteScroll.tsx +4 -6
- package/src/table/Table.tsx +66 -22
- package/src/table/tableData.ts +15 -7
- package/LICENSE +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/table/Table.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/table/Table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { UseQueryResult, UseMutationResult, UseInfiniteQueryResult } from 'react-query';
|
|
3
3
|
import { TableLoader, RowWindow } from './TableLoader';
|
|
4
|
-
export
|
|
4
|
+
export type InfiniteQueryData<T> = {
|
|
5
|
+
pages: RowWindow<T>[];
|
|
6
|
+
pageParams: any[];
|
|
7
|
+
};
|
|
8
|
+
export declare function useTableData<T>(tableLoader: TableLoader<T>, rowsPerPage: number, page: number, infiniteScroll: boolean, setRowCount?: React.Dispatch<React.SetStateAction<number | undefined>>, refetchOnWindowFocus?: boolean): {
|
|
5
9
|
rows: T[];
|
|
6
10
|
totalRows: number | undefined;
|
|
7
11
|
isLoading: boolean;
|
|
@@ -11,7 +15,7 @@ export declare function useTableData<T>(tableLoader: TableLoader<T>, rowsPerPage
|
|
|
11
15
|
isFetchingNextPage: boolean;
|
|
12
16
|
resetQuery: () => void;
|
|
13
17
|
};
|
|
14
|
-
export declare const usePaginationTableQuery: <T>(tableLoader: TableLoader<T>, startIndex: number, endIndex: number, enabled?: boolean) => UseQueryResult<RowWindow<T>, Error>;
|
|
15
|
-
export declare const useInfiniteScrollTableQuery: <T>(tableLoader: TableLoader<T>, rowsPerPage: number, setRowCount?: React.Dispatch<React.SetStateAction<number | undefined>>, enabled?: boolean) => UseInfiniteQueryResult<RowWindow<T>, Error>;
|
|
18
|
+
export declare const usePaginationTableQuery: <T>(tableLoader: TableLoader<T>, startIndex: number, endIndex: number, enabled?: boolean, refetchOnWindowFocus?: boolean) => UseQueryResult<RowWindow<T>, Error>;
|
|
19
|
+
export declare const useInfiniteScrollTableQuery: <T>(tableLoader: TableLoader<T>, rowsPerPage: number, setRowCount?: React.Dispatch<React.SetStateAction<number | undefined>>, enabled?: boolean, refetchOnWindowFocus?: boolean) => UseInfiniteQueryResult<RowWindow<T>, Error>;
|
|
16
20
|
export declare const useTableMutation: <T, TVariables = unknown>(tableLoader: TableLoader<T> | null | undefined, mutationFn: (variables: TVariables) => Promise<void>) => UseMutationResult<void, Error, TVariables>;
|
|
17
21
|
//# sourceMappingURL=tableData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableData.d.ts","sourceRoot":"","sources":["../../../src/table/tableData.ts"],"names":[],"mappings":";AAAA,OAAO,EAIL,cAAc,EACd,iBAAiB,EAEjB,sBAAsB,EAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGvD,wBAAgB,YAAY,CAAC,CAAC,EAC5B,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAC3B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,OAAO,EACvB,WAAW,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tableData.d.ts","sourceRoot":"","sources":["../../../src/table/tableData.ts"],"names":[],"mappings":";AAAA,OAAO,EAIL,cAAc,EACd,iBAAiB,EAEjB,sBAAsB,EAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGvD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,UAAU,EAAE,GAAG,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,YAAY,CAAC,CAAC,EAC5B,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAC3B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,OAAO,EACvB,WAAW,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,EACtE,oBAAoB,UAAQ;;;;;;;;;EAkE7B;AAID,eAAO,MAAM,uBAAuB,+CAEtB,MAAM,YACR,MAAM,2FAoBjB,CAAC;AAEF,eAAO,MAAM,2BAA2B,gDAEzB,MAAM,gBACL,MAAM,QAAQ,CAAC,MAAM,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,mGAmCvE,CAAC;AAEF,eAAO,MAAM,gBAAgB,mHAEY,QAAQ,IAAI,CAAC,+CAqBrD,CAAC"}
|
|
@@ -39,11 +39,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.useTableMutation = exports.useInfiniteScrollTableQuery = exports.usePaginationTableQuery = exports.useTableData = void 0;
|
|
40
40
|
var react_query_1 = require("react-query");
|
|
41
41
|
var react_1 = require("react");
|
|
42
|
-
function useTableData(tableLoader, rowsPerPage, page, infiniteScroll, setRowCount) {
|
|
42
|
+
function useTableData(tableLoader, rowsPerPage, page, infiniteScroll, setRowCount, refetchOnWindowFocus) {
|
|
43
|
+
if (refetchOnWindowFocus === void 0) { refetchOnWindowFocus = false; }
|
|
43
44
|
var startIndex = (0, react_1.useMemo)(function () { return page * rowsPerPage; }, [page, rowsPerPage]);
|
|
44
45
|
var endIndex = (0, react_1.useMemo)(function () { return startIndex + rowsPerPage; }, [startIndex, rowsPerPage]);
|
|
45
|
-
var _a = (0, exports.usePaginationTableQuery)(tableLoader, startIndex, endIndex, !infiniteScroll), paginatedData = _a.data, isPaginatedLoading = _a.isLoading, paginatedError = _a.error, refetchPaginatedData = _a.refetch;
|
|
46
|
-
var _b = (0, exports.useInfiniteScrollTableQuery)(tableLoader, rowsPerPage, setRowCount, infiniteScroll), infiniteData = _b.data, fetchNextPage = _b.fetchNextPage, hasNextPage = _b.hasNextPage, isInfiniteLoading = _b.isLoading, isFetchingNextPage = _b.isFetchingNextPage, infiniteError = _b.error, refetchInfiniteData = _b.refetch;
|
|
46
|
+
var _a = (0, exports.usePaginationTableQuery)(tableLoader, startIndex, endIndex, !infiniteScroll, refetchOnWindowFocus), paginatedData = _a.data, isPaginatedLoading = _a.isLoading, paginatedError = _a.error, refetchPaginatedData = _a.refetch;
|
|
47
|
+
var _b = (0, exports.useInfiniteScrollTableQuery)(tableLoader, rowsPerPage, setRowCount, infiniteScroll, refetchOnWindowFocus), infiniteData = _b.data, fetchNextPage = _b.fetchNextPage, hasNextPage = _b.hasNextPage, isInfiniteLoading = _b.isLoading, isFetchingNextPage = _b.isFetchingNextPage, infiniteError = _b.error, refetchInfiniteData = _b.refetch;
|
|
47
48
|
var rows = (0, react_1.useMemo)(function () {
|
|
48
49
|
return infiniteScroll
|
|
49
50
|
? ((infiniteData === null || infiniteData === void 0 ? void 0 : infiniteData.pages) || []).reduce(function (acc, page) { return acc.concat(page.rows); }, [])
|
|
@@ -77,8 +78,9 @@ function useTableData(tableLoader, rowsPerPage, page, infiniteScroll, setRowCoun
|
|
|
77
78
|
};
|
|
78
79
|
}
|
|
79
80
|
exports.useTableData = useTableData;
|
|
80
|
-
var usePaginationTableQuery = function (tableLoader, startIndex, endIndex, enabled) {
|
|
81
|
+
var usePaginationTableQuery = function (tableLoader, startIndex, endIndex, enabled, refetchOnWindowFocus) {
|
|
81
82
|
if (enabled === void 0) { enabled = false; }
|
|
83
|
+
if (refetchOnWindowFocus === void 0) { refetchOnWindowFocus = false; }
|
|
82
84
|
var reactQueryKeys = tableLoader.reactQueryKeys;
|
|
83
85
|
if (!reactQueryKeys) {
|
|
84
86
|
throw new Error('TableLoader must have reactQueryKeys defined to use with react-query');
|
|
@@ -91,12 +93,13 @@ var usePaginationTableQuery = function (tableLoader, startIndex, endIndex, enabl
|
|
|
91
93
|
}
|
|
92
94
|
}); }); }, {
|
|
93
95
|
enabled: enabled,
|
|
94
|
-
refetchOnWindowFocus:
|
|
96
|
+
refetchOnWindowFocus: refetchOnWindowFocus,
|
|
95
97
|
});
|
|
96
98
|
};
|
|
97
99
|
exports.usePaginationTableQuery = usePaginationTableQuery;
|
|
98
|
-
var useInfiniteScrollTableQuery = function (tableLoader, rowsPerPage, setRowCount, enabled) {
|
|
100
|
+
var useInfiniteScrollTableQuery = function (tableLoader, rowsPerPage, setRowCount, enabled, refetchOnWindowFocus) {
|
|
99
101
|
if (enabled === void 0) { enabled = true; }
|
|
102
|
+
if (refetchOnWindowFocus === void 0) { refetchOnWindowFocus = false; }
|
|
100
103
|
var reactQueryKeys = tableLoader.reactQueryKeys;
|
|
101
104
|
if (!reactQueryKeys) {
|
|
102
105
|
throw new Error('TableLoader must have reactQueryKeys defined to use with react-query');
|
|
@@ -131,7 +134,7 @@ var useInfiniteScrollTableQuery = function (tableLoader, rowsPerPage, setRowCoun
|
|
|
131
134
|
endIndex: nextStartIndex + rowsPerPage,
|
|
132
135
|
};
|
|
133
136
|
},
|
|
134
|
-
refetchOnWindowFocus:
|
|
137
|
+
refetchOnWindowFocus: refetchOnWindowFocus,
|
|
135
138
|
});
|
|
136
139
|
};
|
|
137
140
|
exports.useInfiniteScrollTableQuery = useInfiniteScrollTableQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableData.js","sourceRoot":"","sources":["../../../src/table/tableData.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CASqB;AAErB,+BAA6C;
|
|
1
|
+
{"version":3,"file":"tableData.js","sourceRoot":"","sources":["../../../src/table/tableData.ts"],"names":[],"mappings":"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"}
|
package/generated/index.ts
CHANGED
|
@@ -21,7 +21,7 @@ import 'uuid';
|
|
|
21
21
|
|
|
22
22
|
/** Generate Source Graph */
|
|
23
23
|
|
|
24
|
-
const sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"@proteinjs/ui/Page\",\"value\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":\"/
|
|
24
|
+
const sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"@proteinjs/ui/Page\",\"value\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":\"/Users/brentbahry/repos/n3xa/packages/proteinjs/packages/ui/packages/ui/src/router/Page.ts\",\"qualifiedName\":\"@proteinjs/ui/Page\",\"properties\":[{\"name\":\"name\",\"type\":{\"packageName\":\"\",\"name\":\"string\",\"filePath\":null,\"qualifiedName\":\"/string\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"path\",\"type\":{\"packageName\":\"\",\"name\":\"string | string[]\",\"filePath\":null,\"qualifiedName\":\"/string | string[]\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"component\",\"type\":{\"packageName\":\"\",\"name\":\"React.ComponentType<PageComponentProps>\",\"filePath\":null,\"qualifiedName\":\"/React.ComponentType<PageComponentProps>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"noPageContainer\",\"type\":{\"packageName\":\"\",\"name\":\"boolean\",\"filePath\":null,\"qualifiedName\":\"/boolean\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"auth\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"{\\n /** If true, the user does not need to be logged in or have any roles to access this page. If blank, defaults to false. */\\n public?: boolean;\\n /** If true, the user does not need to have any roles to access this page, but must be logged in. If blank, defaults to false. */\\n allUsers?: boolean;\\n /** The user must be logged in and have these roles to access this page. If blank, defaults to requiring the 'admin' role. */\\n roles?: string[];\\n }\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/{\\n /** If true, the user does not need to be logged in or have any roles to access this page. If blank, defaults to false. */\\n public?: boolean;\\n /** If true, the user does not need to have any roles to access this page, but must be logged in. If blank, defaults to false. */\\n allUsers?: boolean;\\n /** The user must be logged in and have these roles to access this page. If blank, defaults to requiring the 'admin' role. */\\n roles?: string[];\\n }\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"pageContainerSxProps\",\"type\":{\"packageName\":\"\",\"name\":\"(theme: Theme) => SxProps\",\"filePath\":null,\"qualifiedName\":\"/(theme: Theme) => SxProps\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[],\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/reflection\",\"name\":\"Loadable\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/reflection/Loadable\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"sourceType\":3}},{\"v\":\"@proteinjs/reflection/Loadable\"},{\"v\":\"/React.FC\"},{\"v\":\"/string | React.ComponentType\"},{\"v\":\"/Partial\"},{\"v\":\"/React.Component\"},{\"v\":\"/(value: ColumnValue\"}],\"edges\":[{\"v\":\"@proteinjs/ui/Page\",\"w\":\"@proteinjs/reflection/Loadable\",\"value\":\"extends interface\"}]}";
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
/** Generate Source Links */
|
package/index.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/ui",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.2",
|
|
4
4
|
"description": "UI libs",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"@emotion/styled": "11.11.0",
|
|
26
26
|
"@mui/icons-material": "5.14.11",
|
|
27
27
|
"@mui/material": "5.14.11",
|
|
28
|
-
"@proteinjs/reflection": "1.1.
|
|
29
|
-
"@proteinjs/util": "1.
|
|
28
|
+
"@proteinjs/reflection": "1.1.10",
|
|
29
|
+
"@proteinjs/util": "1.5.0",
|
|
30
30
|
"history": "5.0.0",
|
|
31
31
|
"moment": "2.29.4",
|
|
32
32
|
"query-string": "6.13.2",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"uuid": "8.3.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@proteinjs/reflection-build": "1.0
|
|
43
|
+
"@proteinjs/reflection-build": "1.1.0",
|
|
44
44
|
"@types/node": "14.0.13",
|
|
45
45
|
"@types/react": "18.2.23",
|
|
46
46
|
"@types/react-dom": "18.2.8",
|
|
@@ -56,6 +56,5 @@
|
|
|
56
56
|
"typescript": "5.2.2"
|
|
57
57
|
},
|
|
58
58
|
"main": "./dist/generated/index.js",
|
|
59
|
-
"types": "./dist/generated/index.d.ts"
|
|
60
|
-
"gitHead": "c4ff88bff8a0f1256d68a1f2287440a0671b61dd"
|
|
59
|
+
"types": "./dist/generated/index.d.ts"
|
|
61
60
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { AppBar, Toolbar, Box, IconButton, Typography, AppBarProps, ToolbarProps,
|
|
2
|
+
import { AppBar, Toolbar, Box, IconButton, Typography, AppBarProps, ToolbarProps, Theme, SxProps } from '@mui/material';
|
|
3
3
|
import MenuIcon from '@mui/icons-material/Menu';
|
|
4
4
|
import { NavigateFunction, useNavigate } from 'react-router-dom';
|
|
5
5
|
import { Page } from '../router/Page';
|
|
@@ -20,9 +20,25 @@ interface AccountIconButtonWithNavigateProps extends AccountIconButtonProps {
|
|
|
20
20
|
navigate: NavigateFunction;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
export interface CustomPageContainerProps {
|
|
24
|
+
children: React.ReactNode;
|
|
25
|
+
pageContainerSxProps: ((theme: Theme) => SxProps) | undefined;
|
|
26
|
+
loginClicked: boolean;
|
|
27
|
+
setLoginClicked: React.Dispatch<React.SetStateAction<boolean>>;
|
|
28
|
+
auth?: {
|
|
29
|
+
isLoggedIn: boolean;
|
|
30
|
+
canViewPage: (page: Page) => boolean;
|
|
31
|
+
/** Either a dialog component, or a path to be redirected to */
|
|
32
|
+
login: LinkOrDialog;
|
|
33
|
+
logout: () => Promise<string>;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
23
37
|
export type PageContainerProps = {
|
|
24
38
|
page: Page;
|
|
25
39
|
auth?: AccountAuth;
|
|
40
|
+
/** Will be used to render the `Page` within as children */
|
|
41
|
+
CustomPageContainer?: React.ComponentType<CustomPageContainerProps>;
|
|
26
42
|
appName?: string;
|
|
27
43
|
toolbarChildren?: React.ReactNode;
|
|
28
44
|
/** An array of menu items, each containing a React node and an action triggered when selected, either a string, dialog component, or a function. */
|
|
@@ -38,18 +54,17 @@ const Page = React.memo(
|
|
|
38
54
|
({
|
|
39
55
|
auth,
|
|
40
56
|
page,
|
|
41
|
-
navigate,
|
|
42
57
|
loginClicked,
|
|
43
58
|
setLoginClicked,
|
|
44
59
|
}: {
|
|
45
60
|
auth: PageContainerProps['auth'];
|
|
46
61
|
page: PageContainerProps['page'];
|
|
47
|
-
navigate: NavigateFunction;
|
|
48
62
|
loginClicked: boolean;
|
|
49
63
|
setLoginClicked: (loginClicked: boolean) => void;
|
|
50
64
|
}) => {
|
|
65
|
+
const navigate = useNavigate();
|
|
51
66
|
if (auth?.canViewPage(page)) {
|
|
52
|
-
return <page.component urlParams={createUrlParams()}
|
|
67
|
+
return <page.component urlParams={createUrlParams()} />;
|
|
53
68
|
}
|
|
54
69
|
|
|
55
70
|
if (!auth?.isLoggedIn) {
|
|
@@ -77,6 +92,7 @@ export function PageContainer(props: PageContainerProps) {
|
|
|
77
92
|
appBarProps,
|
|
78
93
|
toolbarProps,
|
|
79
94
|
CustomAccountIconButton,
|
|
95
|
+
CustomPageContainer,
|
|
80
96
|
abovePageSlot,
|
|
81
97
|
} = props;
|
|
82
98
|
const [loginClicked, setLoginClicked] = React.useState(false);
|
|
@@ -96,6 +112,19 @@ export function PageContainer(props: PageContainerProps) {
|
|
|
96
112
|
}
|
|
97
113
|
}, [page]);
|
|
98
114
|
|
|
115
|
+
if (CustomPageContainer) {
|
|
116
|
+
return (
|
|
117
|
+
<CustomPageContainer
|
|
118
|
+
loginClicked={loginClicked}
|
|
119
|
+
setLoginClicked={setLoginClicked}
|
|
120
|
+
auth={auth}
|
|
121
|
+
pageContainerSxProps={page.pageContainerSxProps}
|
|
122
|
+
>
|
|
123
|
+
<Page auth={auth} page={page} loginClicked={loginClicked} setLoginClicked={setLoginClicked} />
|
|
124
|
+
</CustomPageContainer>
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
|
|
99
128
|
return (
|
|
100
129
|
<Box
|
|
101
130
|
sx={(theme) => {
|
|
@@ -154,7 +183,7 @@ export function PageContainer(props: PageContainerProps) {
|
|
|
154
183
|
<NavMenu navMenuItems={navMenuItems} navMenuOpen={navMenuOpen} setNavMenuOpen={setNavMenuOpen} />
|
|
155
184
|
)}
|
|
156
185
|
{abovePageSlot}
|
|
157
|
-
<Page auth={auth} page={page}
|
|
186
|
+
<Page auth={auth} page={page} loginClicked={loginClicked} setLoginClicked={setLoginClicked} />
|
|
158
187
|
</Box>
|
|
159
188
|
);
|
|
160
189
|
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options for date formatting
|
|
5
|
+
*/
|
|
6
|
+
interface DateFormatterOptions {
|
|
7
|
+
/** Format for time on today's dates (default: 'h:mm A') */
|
|
8
|
+
todayFormat?: string;
|
|
9
|
+
/** Format for time on yesterday's dates (default: 'h:mm A') */
|
|
10
|
+
yesterdayFormat?: string;
|
|
11
|
+
/** Format for older dates (default: 'MMM D, YYYY') */
|
|
12
|
+
defaultFormat?: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Valid input types for the date parameter
|
|
17
|
+
*/
|
|
18
|
+
type DateInput = Date | string | number;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Formats a date relative to now, showing "Today at HH:MM AM/PM",
|
|
22
|
+
* "Yesterday at HH:MM AM/PM", or "MMM D, YYYY"
|
|
23
|
+
*
|
|
24
|
+
* @param {Date|string|number} inputDate - The date to format (Date object, ISO string, or timestamp)
|
|
25
|
+
* @param {Object} options - Configuration options
|
|
26
|
+
* @param {string} options.todayFormat - Format for time on today's dates (default: 'h:mm A')
|
|
27
|
+
* @param {string} options.yesterdayFormat - Format for time on yesterday's dates (default: 'h:mm A')
|
|
28
|
+
* @param {string} options.defaultFormat - Format for older dates (default: 'MMM D, YYYY')
|
|
29
|
+
* @returns {string} The formatted date string
|
|
30
|
+
* @throws {Error} If inputDate is invalid
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* formatRelativeDate(new Date()) // "Today at 2:30 PM"
|
|
34
|
+
* formatRelativeDate('2024-10-28') // "Yesterday at 12:00 AM"
|
|
35
|
+
* formatRelativeDate('2024-10-27') // "Oct 27, 2024"
|
|
36
|
+
*/
|
|
37
|
+
export function formatRelativeDate(inputDate: DateInput, options: DateFormatterOptions = {}): string {
|
|
38
|
+
// Set default options
|
|
39
|
+
const { todayFormat = 'h:mm A', yesterdayFormat = 'h:mm A', defaultFormat = 'MMM D, YYYY' } = options; // Set default options
|
|
40
|
+
|
|
41
|
+
// Convert input to moment object
|
|
42
|
+
const date = moment(inputDate);
|
|
43
|
+
|
|
44
|
+
// Validate input
|
|
45
|
+
if (!date.isValid()) {
|
|
46
|
+
throw new Error('Invalid date provided');
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const now = moment();
|
|
50
|
+
|
|
51
|
+
// Format based on relative time
|
|
52
|
+
if (date.isSame(now, 'day')) {
|
|
53
|
+
return `Today at ${date.format(todayFormat)}`;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (date.isSame(now.clone().subtract(1, 'day'), 'day')) {
|
|
57
|
+
return `Yesterday at ${date.format(yesterdayFormat)}`;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return date.format(defaultFormat);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** Capitalize the first character in a string. Returns empty string for invalid inputs. */
|
|
64
|
+
export const capitalizeFirst = (str?: string | null): string => {
|
|
65
|
+
if (!str || typeof str !== 'string' || str.length === 0) {
|
|
66
|
+
return '';
|
|
67
|
+
}
|
|
68
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
69
|
+
};
|
package/src/router/Page.ts
CHANGED
package/src/router/Router.tsx
CHANGED
|
@@ -29,7 +29,6 @@ export function Router(props: { pages: Page[]; options: AppOptions }) {
|
|
|
29
29
|
);
|
|
30
30
|
|
|
31
31
|
function RoutesComponent() {
|
|
32
|
-
const navigate = useNavigate();
|
|
33
32
|
return (
|
|
34
33
|
<Routes>
|
|
35
34
|
{(() => {
|
|
@@ -41,7 +40,7 @@ export function Router(props: { pages: Page[]; options: AppOptions }) {
|
|
|
41
40
|
<Route
|
|
42
41
|
key={key++}
|
|
43
42
|
path={getPath(page.path)}
|
|
44
|
-
element={<ContainerizedComponent options={options} page={page}
|
|
43
|
+
element={<ContainerizedComponent options={options} page={page} />}
|
|
45
44
|
/>
|
|
46
45
|
);
|
|
47
46
|
} else {
|
|
@@ -51,7 +50,7 @@ export function Router(props: { pages: Page[]; options: AppOptions }) {
|
|
|
51
50
|
<Route
|
|
52
51
|
key={key++}
|
|
53
52
|
path={getPath(path)}
|
|
54
|
-
element={<ContainerizedComponent options={options} page={page}
|
|
53
|
+
element={<ContainerizedComponent options={options} page={page} />}
|
|
55
54
|
/>
|
|
56
55
|
);
|
|
57
56
|
}
|
|
@@ -64,12 +63,12 @@ export function Router(props: { pages: Page[]; options: AppOptions }) {
|
|
|
64
63
|
);
|
|
65
64
|
}
|
|
66
65
|
|
|
67
|
-
function ContainerizedComponent(props: { options: AppOptions; page: Page
|
|
66
|
+
function ContainerizedComponent(props: { options: AppOptions; page: Page }) {
|
|
68
67
|
if (props.options.pageContainer && !props.page.noPageContainer) {
|
|
69
68
|
return <props.options.pageContainer page={props.page} />;
|
|
70
69
|
}
|
|
71
70
|
|
|
72
|
-
return <props.page.component urlParams={createUrlParams()}
|
|
71
|
+
return <props.page.component urlParams={createUrlParams()} />;
|
|
73
72
|
}
|
|
74
73
|
|
|
75
74
|
function PageNotFound(props: { pageNotFound: AppOptions['pageNotFound'] }) {
|
|
@@ -19,9 +19,7 @@ export const InfiniteScroll: React.FC<InfiniteScrollProps> = ({
|
|
|
19
19
|
|
|
20
20
|
useEffect(() => {
|
|
21
21
|
const getScrollableTarget = () => {
|
|
22
|
-
if (
|
|
23
|
-
return document.getElementById(scrollableTarget);
|
|
24
|
-
} else if (scrollableTarget instanceof HTMLElement) {
|
|
22
|
+
if (scrollableTarget instanceof HTMLElement) {
|
|
25
23
|
return scrollableTarget;
|
|
26
24
|
}
|
|
27
25
|
return null;
|
|
@@ -29,8 +27,8 @@ export const InfiniteScroll: React.FC<InfiniteScrollProps> = ({
|
|
|
29
27
|
|
|
30
28
|
const options = {
|
|
31
29
|
root: getScrollableTarget(),
|
|
32
|
-
rootMargin: '
|
|
33
|
-
threshold: 0
|
|
30
|
+
rootMargin: '100px 0px',
|
|
31
|
+
threshold: 0,
|
|
34
32
|
};
|
|
35
33
|
|
|
36
34
|
const observer = new IntersectionObserver((entries) => {
|
|
@@ -60,7 +58,7 @@ export const InfiniteScroll: React.FC<InfiniteScrollProps> = ({
|
|
|
60
58
|
<Box
|
|
61
59
|
ref={observerTarget}
|
|
62
60
|
sx={{
|
|
63
|
-
height: '
|
|
61
|
+
height: '48px',
|
|
64
62
|
visibility: 'hidden',
|
|
65
63
|
}}
|
|
66
64
|
/>
|