@flamingo-stack/openframe-frontend-core 0.0.700-snapshot.20261005145107 → 0.0.700
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/components/announcement-bar.d.ts +1 -1
- package/dist/components/announcement-bar.d.ts.map +1 -1
- package/dist/components/index.cjs +2 -3
- package/dist/components/index.js +2 -3
- package/dist/types/announcement.d.ts +6 -1
- package/dist/types/announcement.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/announcement-bar.tsx +2 -7
- package/src/types/announcement.ts +6 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { AnnouncementBarProps } from '../types/announcement';
|
|
2
|
-
export declare function AnnouncementBar({ initialAnnouncement, previewMode, dismissible, className, }?: AnnouncementBarProps): import("react").JSX.Element | null;
|
|
2
|
+
export declare function AnnouncementBar({ initialAnnouncement, previewMode, dismissible, pathname, className, }?: AnnouncementBarProps): import("react").JSX.Element | null;
|
|
3
3
|
//# sourceMappingURL=announcement-bar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcement-bar.d.ts","sourceRoot":"","sources":["../../src/components/announcement-bar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"announcement-bar.d.ts","sourceRoot":"","sources":["../../src/components/announcement-bar.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAgB,oBAAoB,EAAwB,MAAM,uBAAuB,CAAC;AA8DtG,wBAAgB,eAAe,CAAC,EAC9B,mBAAmB,EACnB,WAAmB,EACnB,WAAkB,EAClB,QAAQ,EACR,SAAS,GACV,GAAE,oBAAyB,sCA0R3B"}
|
|
@@ -1053,7 +1053,6 @@ var _chunkIIMICN7Lcjs = require('../chunk-IIMICN7L.cjs');
|
|
|
1053
1053
|
|
|
1054
1054
|
|
|
1055
1055
|
|
|
1056
|
-
|
|
1057
1056
|
var _chunk7DNL734Scjs = require('../chunk-7DNL734S.cjs');
|
|
1058
1057
|
|
|
1059
1058
|
|
|
@@ -1395,10 +1394,10 @@ function AnnouncementBar({
|
|
|
1395
1394
|
initialAnnouncement,
|
|
1396
1395
|
previewMode = false,
|
|
1397
1396
|
dismissible = true,
|
|
1397
|
+
pathname,
|
|
1398
1398
|
className
|
|
1399
1399
|
} = {}) {
|
|
1400
1400
|
const platform = _chunkMDBHZBW7cjs.getAppType.call(void 0, );
|
|
1401
|
-
const pathname = _chunk7DNL734Scjs.usePathname.call(void 0, );
|
|
1402
1401
|
const endpoints = _chunkMZ4KBSH7cjs.useEndpointsRuntime.call(void 0, );
|
|
1403
1402
|
const url = previewMode ? null : _nullishCoalesce(_optionalChain([endpoints, 'optionalAccess', _2 => _2.announcementsUrl]), () => ( null));
|
|
1404
1403
|
const initialData = _react.useMemo.call(void 0,
|
|
@@ -1422,7 +1421,7 @@ function AnnouncementBar({
|
|
|
1422
1421
|
() => !previewMode && announcement ? _chunkQDIX2ZRLcjs.isAnnouncementDismissed.call(void 0, platform, announcement.id) : false,
|
|
1423
1422
|
() => false
|
|
1424
1423
|
);
|
|
1425
|
-
const excludedHere = _chunkQDIX2ZRLcjs.pathMatchesAny.call(void 0, pathname, _optionalChain([announcement, 'optionalAccess', _4 => _4.excluded_paths]));
|
|
1424
|
+
const excludedHere = pathname != null && _chunkQDIX2ZRLcjs.pathMatchesAny.call(void 0, pathname, _optionalChain([announcement, 'optionalAccess', _4 => _4.excluded_paths]));
|
|
1426
1425
|
const expanded = previewMode ? announcement != null : announcement != null && expandedState && !dismissed && !excludedHere;
|
|
1427
1426
|
_react.useEffect.call(void 0, () => {
|
|
1428
1427
|
if (previewMode) return;
|
package/dist/components/index.js
CHANGED
|
@@ -1051,7 +1051,6 @@ import {
|
|
|
1051
1051
|
scrollElementIntoView
|
|
1052
1052
|
} from "../chunk-64O4L7WN.js";
|
|
1053
1053
|
import {
|
|
1054
|
-
usePathname,
|
|
1055
1054
|
useRouter,
|
|
1056
1055
|
useSearchParams
|
|
1057
1056
|
} from "../chunk-GY4IZG22.js";
|
|
@@ -1395,10 +1394,10 @@ function AnnouncementBar({
|
|
|
1395
1394
|
initialAnnouncement,
|
|
1396
1395
|
previewMode = false,
|
|
1397
1396
|
dismissible = true,
|
|
1397
|
+
pathname,
|
|
1398
1398
|
className
|
|
1399
1399
|
} = {}) {
|
|
1400
1400
|
const platform = getAppType();
|
|
1401
|
-
const pathname = usePathname();
|
|
1402
1401
|
const endpoints = useEndpointsRuntime();
|
|
1403
1402
|
const url = previewMode ? null : endpoints?.announcementsUrl ?? null;
|
|
1404
1403
|
const initialData = useMemo(
|
|
@@ -1422,7 +1421,7 @@ function AnnouncementBar({
|
|
|
1422
1421
|
() => !previewMode && announcement ? isAnnouncementDismissed(platform, announcement.id) : false,
|
|
1423
1422
|
() => false
|
|
1424
1423
|
);
|
|
1425
|
-
const excludedHere = pathMatchesAny(pathname, announcement?.excluded_paths);
|
|
1424
|
+
const excludedHere = pathname != null && pathMatchesAny(pathname, announcement?.excluded_paths);
|
|
1426
1425
|
const expanded = previewMode ? announcement != null : announcement != null && expandedState && !dismissed && !excludedHere;
|
|
1427
1426
|
useEffect(() => {
|
|
1428
1427
|
if (previewMode) return;
|
|
@@ -15,7 +15,7 @@ export interface Announcement {
|
|
|
15
15
|
is_active: boolean;
|
|
16
16
|
/** A one-line form of the title for tight spots (a hero's news pill). */
|
|
17
17
|
short_title?: string | null;
|
|
18
|
-
/**
|
|
18
|
+
/** Paths the bar is NOT shown on (exact match, e.g. `/`): the page shows the news itself. */
|
|
19
19
|
excluded_paths?: string[] | null;
|
|
20
20
|
cta_enabled?: boolean;
|
|
21
21
|
cta_text?: string;
|
|
@@ -215,6 +215,11 @@ export interface AnnouncementBarProps {
|
|
|
215
215
|
* currentPlatform()).
|
|
216
216
|
*/
|
|
217
217
|
initialAnnouncement?: Announcement | null;
|
|
218
|
+
/**
|
|
219
|
+
* The path the bar is rendered on. When the announcement lists it in
|
|
220
|
+
* `excluded_paths`, the bar stays collapsed. Omitted: never excluded.
|
|
221
|
+
*/
|
|
222
|
+
pathname?: string | null;
|
|
218
223
|
/**
|
|
219
224
|
* Render-only mode for the admin live preview: no fetch/revalidation, inert
|
|
220
225
|
* dismiss button, and no storage side effects (never writes dismissal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcement.d.ts","sourceRoot":"","sources":["../../src/types/announcement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC;iFAC6E;IAC7E,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,
|
|
1
|
+
{"version":3,"file":"announcement.d.ts","sourceRoot":"","sources":["../../src/types/announcement.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import { X } from 'lucide-react';
|
|
4
4
|
import { useEffect, useMemo, useState, useSyncExternalStore } from 'react';
|
|
5
5
|
import { useEndpointsRuntime } from '../contexts/endpoints-runtime-context';
|
|
6
|
-
import { usePathname } from '../embed-shims/next-navigation';
|
|
7
6
|
import { useSelfFetch } from '../hooks/use-self-fetch';
|
|
8
7
|
import type { Announcement, AnnouncementBarProps, AnnouncementResponse } from '../types/announcement';
|
|
9
8
|
import { ANNOUNCEMENT_CTA_DEFAULTS } from '../types/announcement';
|
|
@@ -71,6 +70,7 @@ export function AnnouncementBar({
|
|
|
71
70
|
initialAnnouncement,
|
|
72
71
|
previewMode = false,
|
|
73
72
|
dismissible = true,
|
|
73
|
+
pathname,
|
|
74
74
|
className,
|
|
75
75
|
}: AnnouncementBarProps = {}) {
|
|
76
76
|
// Namespace for the dismissal cookie/legacy keys. Next hosts inline
|
|
@@ -80,11 +80,6 @@ export function AnnouncementBar({
|
|
|
80
80
|
// serves one platform's announcements.
|
|
81
81
|
const platform = getAppType();
|
|
82
82
|
|
|
83
|
-
// The path the bar is on, from the host's router (the navigation shim: Next's
|
|
84
|
-
// `usePathname` on a Next host, the embedder's registered router elsewhere).
|
|
85
|
-
// Read HERE so every host gets `excluded_paths` with no wiring of its own.
|
|
86
|
-
const pathname = usePathname();
|
|
87
|
-
|
|
88
83
|
// Optional endpoint runtime: no provider → no URL → fetching disabled.
|
|
89
84
|
const endpoints = useEndpointsRuntime();
|
|
90
85
|
const url = previewMode ? null : (endpoints?.announcementsUrl ?? null);
|
|
@@ -148,7 +143,7 @@ export function AnnouncementBar({
|
|
|
148
143
|
// Preview always mirrors the draft directly (storage is not consulted there).
|
|
149
144
|
// A page that shows the news itself (a hero's news pill) is listed in the
|
|
150
145
|
// announcement's `excluded_paths` (path patterns); the bar stays collapsed there.
|
|
151
|
-
const excludedHere = pathMatchesAny(pathname, announcement?.excluded_paths);
|
|
146
|
+
const excludedHere = pathname != null && pathMatchesAny(pathname, announcement?.excluded_paths);
|
|
152
147
|
const expanded = previewMode
|
|
153
148
|
? announcement != null
|
|
154
149
|
: announcement != null && expandedState && !dismissed && !excludedHere;
|
|
@@ -18,7 +18,7 @@ export interface Announcement {
|
|
|
18
18
|
is_active: boolean;
|
|
19
19
|
/** A one-line form of the title for tight spots (a hero's news pill). */
|
|
20
20
|
short_title?: string | null;
|
|
21
|
-
/**
|
|
21
|
+
/** Paths the bar is NOT shown on (exact match, e.g. `/`): the page shows the news itself. */
|
|
22
22
|
excluded_paths?: string[] | null;
|
|
23
23
|
// CTA (Call-To-Action) fields
|
|
24
24
|
cta_enabled?: boolean;
|
|
@@ -248,6 +248,11 @@ export interface AnnouncementBarProps {
|
|
|
248
248
|
* currentPlatform()).
|
|
249
249
|
*/
|
|
250
250
|
initialAnnouncement?: Announcement | null;
|
|
251
|
+
/**
|
|
252
|
+
* The path the bar is rendered on. When the announcement lists it in
|
|
253
|
+
* `excluded_paths`, the bar stays collapsed. Omitted: never excluded.
|
|
254
|
+
*/
|
|
255
|
+
pathname?: string | null;
|
|
251
256
|
/**
|
|
252
257
|
* Render-only mode for the admin live preview: no fetch/revalidation, inert
|
|
253
258
|
* dismiss button, and no storage side effects (never writes dismissal
|