forked from nodejs/doc-kit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.jsx
More file actions
40 lines (36 loc) · 1.2 KB
/
index.jsx
File metadata and controls
40 lines (36 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import Select from '@node-core/ui-components/Common/Select';
import SideBar from '@node-core/ui-components/Containers/Sidebar';
import { project, version, versions, pages } from '#theme/config';
import styles from './index.module.css';
import {
buildSideBarGroups,
getCompatibleVersions,
redirect,
} from './utils/index.mjs';
/**
* Sidebar component for MDX documentation with version selection and page navigation
* @param {{ metadata: import('../../types').SerializedMetadata }} props
*/
export default ({ metadata }) => {
// Build sidebar groups from metadata, categorizing pages and preserving order
const groups = buildSideBarGroups(pages, metadata);
// Filter pre-computed versions by compatibility and resolve per-page URL
const compatibleVersions = getCompatibleVersions(versions, metadata);
return (
<SideBar
pathname={`${metadata.basename}.html`}
groups={groups}
onSelect={redirect}
as={props => <a {...props} rel="prefetch" />}
title="Navigation"
>
<Select
label={`${project} version`}
values={compatibleVersions}
className={styles.select}
placeholder={version}
onChange={redirect}
/>
</SideBar>
);
};