Skip to content

Commit 5894962

Browse files
committed
code color prop with test, docs and sb
1 parent ea7ed96 commit 5894962

File tree

4 files changed

+40
-4
lines changed

4 files changed

+40
-4
lines changed

docs/app/docs/components/code/page.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,17 @@ const PAGE_NAME = 'CODE_DOCS';
77
export const metadata = SEO.getMetadata(PAGE_NAME);
88

99
const CodeDocs = () => {
10+
const columns = [
11+
{name: 'Prop', id: 'prop'},
12+
{name: 'Type', id: 'type'},
13+
{name: 'Default', id: 'default'},
14+
{name: 'Description', id: 'description'},
15+
];
16+
17+
const data = [
18+
{prop: 'color', type: 'string', default: 'null', description: 'Accent Color of the code', id: 'color'},
19+
];
20+
1021
return <div>
1122
<Documentation
1223
currentPage={PAGE_NAME} title='Code' description={`
@@ -19,6 +30,10 @@ const CodeDocs = () => {
1930
</Documentation.ComponentHero>
2031

2132
</Documentation>
33+
34+
<div className="max-w-screen-md">
35+
<Documentation.Table columns={columns} data={data} />
36+
</div>
2237
</div>;
2338
};
2439

src/components/ui/Code/Code.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,19 @@ const COMPONENT_NAME = 'Code';
88
export type CodeProps= {
99
children: React.ReactNode;
1010
customRootClass?: string;
11+
color?: string;
1112
}
1213

13-
const Code = ({ children, customRootClass = '' }: CodeProps) => {
14+
const Code = ({ children, customRootClass = '', color='' }: CodeProps) => {
1415
const rootClass = customClassSwitcher(customRootClass, COMPONENT_NAME);
16+
17+
const data_attributes: Record<string, string> = {};
1518

16-
return <code className={clsx(rootClass)}>
19+
if (color) {
20+
data_attributes['data-accent-color'] = color;
21+
}
22+
23+
return <code className={clsx(rootClass)} {...data_attributes}>
1724
{children}
1825
</code>;
1926
};

src/components/ui/Code/stories/Code.stories.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ export default {
1010
render: (args) => <SandboxEditor>
1111
<div >
1212
<div className='flex space-x-2'>
13-
<Code className='space-x-1'>
13+
<Code className='space-x-1' {...args}>
1414
requestAnimationFrame()
1515
</Code>
1616

17-
<Code className='space-x-1'>
17+
<Code className='space-x-1' {...args}>
1818
{Code_TEXT}
1919
</Code>
2020

@@ -30,3 +30,9 @@ export const All = {
3030
className: ''
3131
}
3232
};
33+
34+
export const Color = {
35+
args: {
36+
color: 'green'
37+
}
38+
}

src/components/ui/Code/tests/Code.test.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,12 @@ describe('Code Component', () => {
1010
expect(codeElement).toBeInTheDocument();
1111
expect(codeElement).toHaveTextContent("console.log('Hello world!');");
1212
});
13+
14+
it('renders without crashing', () => {
15+
const { container } = render(<Code color='blue'>console.log('Hello world!');</Code>);
16+
17+
const codeElement = container.querySelector('code');
18+
expect(codeElement).toBeInTheDocument();
19+
expect(codeElement).toHaveAttribute('data-accent-color', 'blue');
20+
});
1321
})

0 commit comments

Comments
 (0)