@flamingo-stack/openframe-frontend-core 0.0.700 → 0.0.701
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 +3 -2
- package/dist/components/index.js +3 -2
- package/dist/types/announcement.d.ts +1 -6
- package/dist/types/announcement.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/announcement-bar.tsx +7 -2
- package/src/types/announcement.ts +1 -6
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { AnnouncementBarProps } from '../types/announcement';
|
|
2
|
-
export declare function AnnouncementBar({ initialAnnouncement, previewMode, dismissible,
|
|
2
|
+
export declare function AnnouncementBar({ initialAnnouncement, previewMode, dismissible, 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":"AAOA,OAAO,KAAK,EAAgB,oBAAoB,EAAwB,MAAM,uBAAuB,CAAC;AA8DtG,wBAAgB,eAAe,CAAC,EAC9B,mBAAmB,EACnB,WAAmB,EACnB,WAAkB,EAClB,SAAS,GACV,GAAE,oBAAyB,sCA+R3B"}
|
|
@@ -1053,6 +1053,7 @@ var _chunkIIMICN7Lcjs = require('../chunk-IIMICN7L.cjs');
|
|
|
1053
1053
|
|
|
1054
1054
|
|
|
1055
1055
|
|
|
1056
|
+
|
|
1056
1057
|
var _chunk7DNL734Scjs = require('../chunk-7DNL734S.cjs');
|
|
1057
1058
|
|
|
1058
1059
|
|
|
@@ -1394,10 +1395,10 @@ function AnnouncementBar({
|
|
|
1394
1395
|
initialAnnouncement,
|
|
1395
1396
|
previewMode = false,
|
|
1396
1397
|
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, );
|
|
1401
1402
|
const endpoints = _chunkMZ4KBSH7cjs.useEndpointsRuntime.call(void 0, );
|
|
1402
1403
|
const url = previewMode ? null : _nullishCoalesce(_optionalChain([endpoints, 'optionalAccess', _2 => _2.announcementsUrl]), () => ( null));
|
|
1403
1404
|
const initialData = _react.useMemo.call(void 0,
|
|
@@ -1421,7 +1422,7 @@ function AnnouncementBar({
|
|
|
1421
1422
|
() => !previewMode && announcement ? _chunkQDIX2ZRLcjs.isAnnouncementDismissed.call(void 0, platform, announcement.id) : false,
|
|
1422
1423
|
() => false
|
|
1423
1424
|
);
|
|
1424
|
-
const excludedHere =
|
|
1425
|
+
const excludedHere = _chunkQDIX2ZRLcjs.pathMatchesAny.call(void 0, pathname, _optionalChain([announcement, 'optionalAccess', _4 => _4.excluded_paths]));
|
|
1425
1426
|
const expanded = previewMode ? announcement != null : announcement != null && expandedState && !dismissed && !excludedHere;
|
|
1426
1427
|
_react.useEffect.call(void 0, () => {
|
|
1427
1428
|
if (previewMode) return;
|
package/dist/components/index.js
CHANGED
|
@@ -1051,6 +1051,7 @@ import {
|
|
|
1051
1051
|
scrollElementIntoView
|
|
1052
1052
|
} from "../chunk-64O4L7WN.js";
|
|
1053
1053
|
import {
|
|
1054
|
+
usePathname,
|
|
1054
1055
|
useRouter,
|
|
1055
1056
|
useSearchParams
|
|
1056
1057
|
} from "../chunk-GY4IZG22.js";
|
|
@@ -1394,10 +1395,10 @@ function AnnouncementBar({
|
|
|
1394
1395
|
initialAnnouncement,
|
|
1395
1396
|
previewMode = false,
|
|
1396
1397
|
dismissible = true,
|
|
1397
|
-
pathname,
|
|
1398
1398
|
className
|
|
1399
1399
|
} = {}) {
|
|
1400
1400
|
const platform = getAppType();
|
|
1401
|
+
const pathname = usePathname();
|
|
1401
1402
|
const endpoints = useEndpointsRuntime();
|
|
1402
1403
|
const url = previewMode ? null : endpoints?.announcementsUrl ?? null;
|
|
1403
1404
|
const initialData = useMemo(
|
|
@@ -1421,7 +1422,7 @@ function AnnouncementBar({
|
|
|
1421
1422
|
() => !previewMode && announcement ? isAnnouncementDismissed(platform, announcement.id) : false,
|
|
1422
1423
|
() => false
|
|
1423
1424
|
);
|
|
1424
|
-
const excludedHere =
|
|
1425
|
+
const excludedHere = pathMatchesAny(pathname, announcement?.excluded_paths);
|
|
1425
1426
|
const expanded = previewMode ? announcement != null : announcement != null && expandedState && !dismissed && !excludedHere;
|
|
1426
1427
|
useEffect(() => {
|
|
1427
1428
|
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
|
+
/** Path patterns the bar is NOT shown on (regular expressions matched against the whole path): the page shows the news itself. */
|
|
19
19
|
excluded_paths?: string[] | null;
|
|
20
20
|
cta_enabled?: boolean;
|
|
21
21
|
cta_text?: string;
|
|
@@ -215,11 +215,6 @@ 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;
|
|
223
218
|
/**
|
|
224
219
|
* Render-only mode for the admin live preview: no fetch/revalidation, inert
|
|
225
220
|
* 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,6 +3,7 @@
|
|
|
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';
|
|
6
7
|
import { useSelfFetch } from '../hooks/use-self-fetch';
|
|
7
8
|
import type { Announcement, AnnouncementBarProps, AnnouncementResponse } from '../types/announcement';
|
|
8
9
|
import { ANNOUNCEMENT_CTA_DEFAULTS } from '../types/announcement';
|
|
@@ -70,7 +71,6 @@ export function AnnouncementBar({
|
|
|
70
71
|
initialAnnouncement,
|
|
71
72
|
previewMode = false,
|
|
72
73
|
dismissible = true,
|
|
73
|
-
pathname,
|
|
74
74
|
className,
|
|
75
75
|
}: AnnouncementBarProps = {}) {
|
|
76
76
|
// Namespace for the dismissal cookie/legacy keys. Next hosts inline
|
|
@@ -80,6 +80,11 @@ 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
|
+
|
|
83
88
|
// Optional endpoint runtime: no provider → no URL → fetching disabled.
|
|
84
89
|
const endpoints = useEndpointsRuntime();
|
|
85
90
|
const url = previewMode ? null : (endpoints?.announcementsUrl ?? null);
|
|
@@ -143,7 +148,7 @@ export function AnnouncementBar({
|
|
|
143
148
|
// Preview always mirrors the draft directly (storage is not consulted there).
|
|
144
149
|
// A page that shows the news itself (a hero's news pill) is listed in the
|
|
145
150
|
// announcement's `excluded_paths` (path patterns); the bar stays collapsed there.
|
|
146
|
-
const excludedHere =
|
|
151
|
+
const excludedHere = pathMatchesAny(pathname, announcement?.excluded_paths);
|
|
147
152
|
const expanded = previewMode
|
|
148
153
|
? announcement != null
|
|
149
154
|
: 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
|
+
/** Path patterns the bar is NOT shown on (regular expressions matched against the whole path): 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,11 +248,6 @@ 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;
|
|
256
251
|
/**
|
|
257
252
|
* Render-only mode for the admin live preview: no fetch/revalidation, inert
|
|
258
253
|
* dismiss button, and no storage side effects (never writes dismissal
|