Skip to content

Commit 43fabd8

Browse files
committed
refactor: review
1 parent ecb53da commit 43fabd8

File tree

5 files changed

+24
-16
lines changed

5 files changed

+24
-16
lines changed

src/generators/jsx-ast/utils/buildContent.mjs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,10 @@ export const createDocumentLayout = (
287287
remark
288288
) =>
289289
createTree('root', [
290-
createJSXElement(JSX_IMPORTS.AnnouncementBanner.name),
290+
createJSXElement(JSX_IMPORTS.AnnouncementBanner.name, {
291+
remoteConfig: getConfig('web').remoteConfig,
292+
versionMajor: getConfig('web').version?.major ?? null,
293+
}),
291294
createJSXElement(JSX_IMPORTS.NavBar.name),
292295
createJSXElement(JSX_IMPORTS.Article.name, {
293296
children: [

src/generators/web/index.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export default {
3535
'#config/Logo': '@node-core/ui-components/Common/NodejsLogo',
3636
},
3737
remoteConfig:
38-
'https://gist.githubusercontent.com/araujogui/8ea72ffaf574f58fca1482e764e8b5c8/raw/16af51e4efbf37da7b6aff9b7e5dd967d955aacf/api-docs.config.json',
38+
'https://raw.githubusercontent.com/nodejs/nodejs.org/main/apps/site/site.json',
3939
},
4040

4141
/**

src/generators/web/types.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export type Generator = GeneratorMetadata<
55
templatePath: string;
66
title: string;
77
imports: Record<string, string>;
8-
remoteConfig: string | null;
8+
remoteConfig: string;
99
},
1010
Generate<Array<JSXContent>, AsyncGenerator<{ html: string; css: string }>>
1111
>;

src/generators/web/ui/components/AnnouncementBanner/index.jsx

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { ArrowUpRightIcon } from '@heroicons/react/24/outline';
22
import Banner from '@node-core/ui-components/Common/Banner';
33
import { useEffect, useState } from 'preact/hooks';
44

5-
import { STATIC_DATA } from '../../constants.mjs';
65
import { isBannerActive } from '../../utils/banner.mjs';
76

87
/** @import { BannerEntry, RemoteConfig } from './types.d.ts' */
@@ -11,13 +10,13 @@ import { isBannerActive } from '../../utils/banner.mjs';
1110
* Asynchronously fetches and displays announcement banners from the remote config.
1211
* Global banners are rendered above version-specific ones.
1312
* Non-blocking: silently ignores fetch/parse failures.
13+
*
14+
* @param {{ remoteConfig: string, versionMajor: number | null }} props
1415
*/
15-
export default () => {
16+
export default ({ remoteConfig, versionMajor }) => {
1617
const [banners, setBanners] = useState(/** @type {BannerEntry[]} */ ([]));
1718

1819
useEffect(() => {
19-
const { remoteConfig, versionMajor } = STATIC_DATA;
20-
2120
if (!remoteConfig) {
2221
return;
2322
}
@@ -40,9 +39,11 @@ export default () => {
4039
active.push(globalBanner);
4140
}
4241

43-
const versionBanner = config[`v${versionMajor}`]?.banner;
44-
if (versionBanner && isBannerActive(versionBanner)) {
45-
active.push(versionBanner);
42+
if (versionMajor != null) {
43+
const versionBanner = config[`v${versionMajor}`]?.banner;
44+
if (versionBanner && isBannerActive(versionBanner)) {
45+
active.push(versionBanner);
46+
}
4647
}
4748

4849
setBanners(active);
@@ -57,11 +58,17 @@ export default () => {
5758
}
5859

5960
return (
60-
<div>
61+
<div role="region" aria-label="Announcements">
6162
{banners.map(banner => (
62-
<Banner key={banner.link} type={banner.type}>
63-
{banner.link ? <a href={banner.link}>{banner.text}</a> : banner.text}
64-
{banner.link && <ArrowUpRightIcon />}
63+
<Banner key={banner.text ?? banner.text} type={banner.type}>
64+
{banner.link ? (
65+
<a href={banner.link} target="_blank" rel="noopener noreferrer">
66+
{banner.text}
67+
<ArrowUpRightIcon />
68+
</a>
69+
) : (
70+
banner.text
71+
)}
6572
</Banner>
6673
))}
6774
</div>

src/generators/web/utils/data.mjs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ export const createStaticData = () => {
3232
shikiDisplayNameMap,
3333
title: config.title,
3434
repository: config.repository,
35-
versionMajor: config.version?.major ?? null,
36-
remoteConfig: config.remoteConfig ?? null,
3735
};
3836
};
3937

0 commit comments

Comments
 (0)