Skip to content

Commit 8c1c471

Browse files
committed
codetabs
1 parent eba648f commit 8c1c471

File tree

4 files changed

+72
-1
lines changed

4 files changed

+72
-1
lines changed

.prettierignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,8 @@
22
src/generators/api-links/test/fixtures/
33
*.snapshot
44

5+
# Templates
6+
src/generators/web/template.html
7+
58
# Output
69
out/

package-lock.json

Lines changed: 29 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
"@reporters/github": "^1.7.2",
2929
"@types/mdast": "^4.0.4",
3030
"@types/node": "^22.15.3",
31+
"@types/react": "^19.1.6",
32+
"@types/react-dom": "^19.1.5",
3133
"eslint": "^9.27.0",
3234
"eslint-plugin-import-x": "^4.13.3",
3335
"eslint-plugin-jsdoc": "^50.6.17",
Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,38 @@
1-
export default () => <div>CodeTabs</div>;
1+
import CodeTabs from '@node-core/ui-components/Common/CodeTabs';
2+
import * as TabsPrimitive from '@radix-ui/react-tabs';
3+
4+
const MDXCodeTabs = ({
5+
languages: rawLanguages,
6+
displayNames: rawDisplayNames,
7+
children: codes,
8+
defaultTab = '0',
9+
...props
10+
}) => {
11+
const languages = rawLanguages.split('|');
12+
const displayNames = rawDisplayNames?.split('|') ?? [];
13+
14+
const tabs = languages.map((language, index) => {
15+
const displayName = displayNames[index];
16+
17+
return {
18+
key: `${language}-${index}`,
19+
label: displayName?.length ? displayName : language.toUpperCase(),
20+
};
21+
});
22+
23+
return (
24+
<CodeTabs
25+
tabs={tabs}
26+
defaultValue={tabs[Number(defaultTab)].key}
27+
{...props}
28+
>
29+
{languages.map((_, index) => (
30+
<TabsPrimitive.Content key={tabs[index].key} value={tabs[index].key}>
31+
{codes[index]}
32+
</TabsPrimitive.Content>
33+
))}
34+
</CodeTabs>
35+
);
36+
};
37+
38+
export default MDXCodeTabs;

0 commit comments

Comments
 (0)