@genesislcap/blank-app-seed 5.23.0 → 5.23.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/.genx/package.json +1 -1
- package/.genx/templates/react/route.hbs +3 -3
- package/.genx/versions.json +1 -1
- package/CHANGELOG.md +19 -0
- package/client-tmp/angular/src/app/share/foundation-auth.ts +7 -1
- package/client-tmp/react/src/pbc/elementsRenderer.tsx +5 -2
- package/client-tmp/react/src/share/foundation-login.ts +7 -1
- package/package.json +1 -1
package/.genx/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{{#if route.tiles}}
|
|
2
2
|
import { Layout, Model, TabNode } from 'flexlayout-react';
|
|
3
|
-
import React, {
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
4
|
import { TileErrorBoundary } from '../../components/error-boundary/ErrorBoundary';
|
|
5
5
|
import { getFlexLayoutStorageKey } from '../../utils/layout';
|
|
6
6
|
/* eslint-disable import-es/order -- generated tile imports follow tile order, not alphabetical */
|
|
@@ -38,7 +38,7 @@ function loadModel(): Model {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
const {{pascalCase route.name}} = () => {
|
|
41
|
-
const
|
|
41
|
+
const [model] = useState<Model>(loadModel);
|
|
42
42
|
|
|
43
43
|
const factory = (node: TabNode) => {
|
|
44
44
|
const Component = componentMap[node.getComponent() ?? ''];
|
|
@@ -60,7 +60,7 @@ const {{pascalCase route.name}} = () => {
|
|
|
60
60
|
|
|
61
61
|
return (
|
|
62
62
|
<section className="{{kebabCase route.name}}-page">
|
|
63
|
-
<Layout model={
|
|
63
|
+
<Layout model={model} factory={factory} onModelChange={onModelChange} />
|
|
64
64
|
</section>
|
|
65
65
|
);
|
|
66
66
|
};
|
package/.genx/versions.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.23.2](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.23.1...v5.23.2) (2026-08-28)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* drop the post-login watcher superseded by the foundation-auth fallback fix [PTC-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 2c142f0
|
|
9
|
+
* give the auth hostPath a leading slash when no base path is set [PTC-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 450a2fe
|
|
10
|
+
* give the auth hostPath a leading slash when no base path is set [PTC-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) (#619) 1b4fd2c
|
|
11
|
+
* re-assert the post-login destination while the auth router tears down [PTC-0](https://github.com/genesiscommunitysuccess/blank-app-seed/issues/0) 2c175e7
|
|
12
|
+
|
|
13
|
+
## [5.23.1](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.23.0...v5.23.1) (2026-08-25)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* bump versions.UI to 15.18.0 for event-type date and wire-name fixes GENC-1526 b093abe
|
|
19
|
+
* bump versions.UI to 15.18.0 for event-type date and wire-name fixes GENC-1526 (#617) aafb04f
|
|
20
|
+
* satisfy new oxlint react rules in seed template and route generator GENC-0 b5b12af
|
|
21
|
+
|
|
3
22
|
## [5.23.0](https://github.com/genesiscommunitysuccess/blank-app-seed/compare/v5.22.1...v5.23.0) (2026-08-18)
|
|
4
23
|
|
|
5
24
|
|
|
@@ -16,6 +16,12 @@ export const configureFoundationAuth = ({
|
|
|
16
16
|
}) => {
|
|
17
17
|
const baseElement = document.querySelector('base');
|
|
18
18
|
const basePath = baseElement?.getAttribute('href') || '';
|
|
19
|
+
// The base href is '' outside a container deployment, and a bare '' + 'login' is a
|
|
20
|
+
// RELATIVE host path — the auth flow's navigations then compound onto whatever path the
|
|
21
|
+
// app is on (e.g. '/login/not-found'), and a reload booted at that URL falls through to
|
|
22
|
+
// the router's not-found page. Join with a normalised leading slash so the host path is
|
|
23
|
+
// absolute with and without a base.
|
|
24
|
+
const hostPath = `${basePath}/${AUTH_PATH}`.replace(/\/{2,}/g, '/');
|
|
19
25
|
|
|
20
26
|
configure({
|
|
21
27
|
name: 'client-app-login',
|
|
@@ -26,7 +32,7 @@ export const configureFoundationAuth = ({
|
|
|
26
32
|
...defaultAuthConfig.fields.username,
|
|
27
33
|
},
|
|
28
34
|
},
|
|
29
|
-
hostPath
|
|
35
|
+
hostPath,
|
|
30
36
|
postLoginRedirect: async () => {
|
|
31
37
|
const url = API_HOST;
|
|
32
38
|
await connectService.connect(url);
|
|
@@ -20,11 +20,14 @@ const PBCElementsRenderer = ({
|
|
|
20
20
|
predicate = ALWAYS_TRUE_PREDICATE,
|
|
21
21
|
}: PBCElementsRendererProps) => {
|
|
22
22
|
const containerRef = useRef<PBCContainerElement>(null);
|
|
23
|
-
|
|
23
|
+
// Read during render rather than set synchronously in the effect below; the
|
|
24
|
+
// subscription still delivers every later change.
|
|
25
|
+
const [isConnected, setIsConnected] = useState(
|
|
26
|
+
() => DI.getOrCreateDOMContainer().get(Connect).isConnected,
|
|
27
|
+
);
|
|
24
28
|
|
|
25
29
|
useEffect(() => {
|
|
26
30
|
const connect = DI.getOrCreateDOMContainer().get(Connect);
|
|
27
|
-
setIsConnected(connect.isConnected);
|
|
28
31
|
const isConnected$ = (
|
|
29
32
|
connect as {
|
|
30
33
|
isConnected$?: { subscribe: (cb: (v: boolean) => void) => { unsubscribe: () => void } };
|
|
@@ -21,6 +21,12 @@ export const configureFoundationLogin = ({
|
|
|
21
21
|
const baseElement = document.querySelector('base');
|
|
22
22
|
const basePath = baseElement?.getAttribute('href') || '';
|
|
23
23
|
const connect = DI.getOrCreateDOMContainer().get(Connect);
|
|
24
|
+
// The base href is '' outside a container deployment, and a bare '' + 'login' is a
|
|
25
|
+
// RELATIVE host path — the auth flow's navigations then compound onto whatever path the
|
|
26
|
+
// app is on (e.g. '/login/not-found'), and a reload booted at that URL falls through to
|
|
27
|
+
// the router's not-found page. Join with a normalised leading slash so the host path is
|
|
28
|
+
// absolute with and without a base.
|
|
29
|
+
const hostPath = `${basePath}/${AUTH_PATH}`.replace(/\/{2,}/g, '/');
|
|
24
30
|
|
|
25
31
|
configure({
|
|
26
32
|
name: 'client-app-login',
|
|
@@ -31,7 +37,7 @@ export const configureFoundationLogin = ({
|
|
|
31
37
|
...defaultAuthConfig.fields.username,
|
|
32
38
|
},
|
|
33
39
|
},
|
|
34
|
-
hostPath
|
|
40
|
+
hostPath,
|
|
35
41
|
postLoginRedirect: async () => {
|
|
36
42
|
await connect.connect();
|
|
37
43
|
// Preserve the full original location (query string + hash) so deep-link
|