Skip to content

Commit b6a128b

Browse files
committed
refactor: use layout component
1 parent 3846557 commit b6a128b

3 files changed

Lines changed: 18 additions & 49 deletions

File tree

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

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -295,29 +295,14 @@ export const createDocumentLayout = (
295295
const config = getConfig('jsx-ast');
296296

297297
return createTree('root', [
298-
createJSXElement(JSX_IMPORTS.AnnouncementBanner.name, {
299-
remoteConfig: config.remoteConfig,
300-
versionMajor: config.version?.major ?? null,
301-
}),
302-
createJSXElement(JSX_IMPORTS.NavBar.name),
303-
createJSXElement(JSX_IMPORTS.Article.name, {
304-
children: [
305-
createJSXElement(JSX_IMPORTS.SideBar.name, sideBarProps),
306-
createElement('div', [
307-
createElement('div', [
308-
createJSXElement(JSX_IMPORTS.TableOfContents.name, {
309-
headings: metaBarProps.headings,
310-
summaryTitle: 'On this page',
311-
}),
312-
createElement('br'),
313-
createElement(
314-
'main',
315-
entries.map(entry => processEntry(entry, remark))
316-
),
317-
]),
318-
createJSXElement(JSX_IMPORTS.MetaBar.name, metaBarProps),
319-
]),
320-
],
298+
createJSXElement(JSX_IMPORTS.Layout.name, {
299+
sideBarProps,
300+
metaBarProps,
301+
announcementBannerProps: {
302+
remoteConfig: config.remoteConfig,
303+
versionMajor: config.version?.major ?? null,
304+
},
305+
children: entries.map(entry => processEntry(entry, remark)),
321306
}),
322307
]);
323308
};

src/generators/web/constants.mjs

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,34 +14,10 @@ export const ROOT = dirname(fileURLToPath(import.meta.url));
1414
* An object containing mappings for various JSX components to their import paths.
1515
*/
1616
export const JSX_IMPORTS = {
17-
AnnouncementBanner: {
18-
name: 'AnnouncementBanner',
19-
source: resolve(ROOT, './ui/components/AnnouncementBanner'),
20-
},
2117
Layout: {
2218
name: 'Layout',
2319
source: '#theme/Layout',
2420
},
25-
NavBar: {
26-
name: 'NavBar',
27-
source: resolve(ROOT, './ui/components/NavBar'),
28-
},
29-
Article: {
30-
name: 'Article',
31-
source: '@node-core/ui-components/Containers/Article',
32-
},
33-
SideBar: {
34-
name: 'SideBar',
35-
source: resolve(ROOT, './ui/components/SideBar'),
36-
},
37-
TableOfContents: {
38-
name: 'TableOfContents',
39-
source: '@node-core/ui-components/Common/TableOfContents',
40-
},
41-
MetaBar: {
42-
name: 'MetaBar',
43-
source: resolve(ROOT, './ui/components/MetaBar'),
44-
},
4521
CodeBox: {
4622
name: 'CodeBox',
4723
source: resolve(ROOT, './ui/components/CodeBox'),

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import TableOfContents from '@node-core/ui-components/Common/TableOfContents';
22
import Article from '@node-core/ui-components/Containers/Article';
33

4+
import AnnouncementBanner from '../AnnouncementBanner';
5+
46
import Footer from '#theme/Footer';
57
import MetaBar from '#theme/Metabar';
68
import NavBar from '#theme/Navigation';
@@ -13,10 +15,16 @@ import SideBar from '#theme/Sidebar';
1315
* main content, meta bar, and footer. Override via `#theme/Layout` in your
1416
* configuration's `imports` to customize the entire page structure.
1517
*
16-
* @param {{ sideBarProps: object, metaBarProps: object, children: import('preact').ComponentChildren }} props
18+
* @param {{ sideBarProps: object, metaBarProps: object, announcementBannerProps: object, children: import('preact').ComponentChildren }} props
1719
*/
18-
export default ({ sideBarProps, metaBarProps, children }) => (
20+
export default ({
21+
sideBarProps,
22+
metaBarProps,
23+
announcementBannerProps,
24+
children,
25+
}) => (
1926
<>
27+
<AnnouncementBanner {...announcementBannerProps} />
2028
<NavBar />
2129
<Article>
2230
<SideBar {...sideBarProps} />

0 commit comments

Comments
 (0)