Skip to content

Commit 481b42e

Browse files
vydimitrovPlopix
authored andcommitted
fix(reactjs-components): types for components
1 parent ecb302e commit 481b42e

File tree

2 files changed

+25
-27
lines changed

2 files changed

+25
-27
lines changed

src/content-transformer/component.tsx

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
'use client';
22

3-
import { Fragment, createContext, useContext, HTMLAttributes } from 'react';
3+
import { Fragment, createContext, useContext } from 'react';
44
import { NodeProps, Overrides } from './types';
55
export { NodeProps, Overrides };
66

7-
export const Renderers = {
8-
link: (props: NodeProps) => (
7+
export const Renderers: Record<keyof Overrides, (props: NodeProps) => JSX.Element> = {
8+
link: (props) => (
99
<a href={props.metadata?.href}>
1010
<NodeContent {...props} />
1111
</a>
1212
),
13-
'unordered-list': (props: NodeProps) => (
13+
'unordered-list': (props) => (
1414
<ul>
1515
<NodeContent {...props} />
1616
</ul>
1717
),
18-
'ordered-list': (props: NodeProps) => (
18+
'ordered-list': (props) => (
1919
<ol>
2020
<NodeContent {...props} />
2121
</ol>
2222
),
23-
list: (props: NodeProps) => (
23+
list: (props) => (
2424
<ul>
2525
<NodeContent {...props} />
2626
</ul>
2727
),
28-
'list-item': (props: NodeProps) => (
28+
'list-item': (props) => (
2929
<li>
3030
<NodeContent {...props} />
3131
</li>
3232
),
33-
quote: (props: NodeProps) => {
33+
quote: (props) => {
3434
if (props.kind === 'block') {
3535
return (
3636
<blockquote>
@@ -44,42 +44,42 @@ export const Renderers = {
4444
</q>
4545
);
4646
},
47-
paragraph: (props: NodeProps) => (
47+
paragraph: (props) => (
4848
<p>
4949
<NodeContent {...props} />
5050
</p>
5151
),
52-
preformatted: (props: NodeProps) => (
52+
preformatted: (props) => (
5353
<pre>
5454
<NodeContent {...props} />
5555
</pre>
5656
),
57-
code: (props: NodeProps) => (
57+
code: (props) => (
5858
<code>
5959
<NodeContent {...props} />
6060
</code>
6161
),
62-
underlined: (props: NodeProps) => (
62+
underlined: (props) => (
6363
<u>
6464
<NodeContent {...props} />
6565
</u>
6666
),
67-
strong: (props: NodeProps) => (
67+
strong: (props) => (
6868
<strong>
6969
<NodeContent {...props} />
7070
</strong>
7171
),
72-
emphasized: (props: NodeProps) => (
72+
emphasized: (props) => (
7373
<em>
7474
<NodeContent {...props} />
7575
</em>
7676
),
77-
div: (props: NodeProps) => (
77+
div: (props) => (
7878
<div>
7979
<NodeContent {...props} />
8080
</div>
8181
),
82-
span: (props: NodeProps) => <NodeContent {...props} />,
82+
span: (props) => <NodeContent {...props} />,
8383
'line-break': () => <br />,
8484
};
8585

@@ -99,11 +99,11 @@ export const NodeContent = (props: NodeProps) => {
9999

100100
if (props.children) {
101101
return (
102-
<Fragment>
102+
<>
103103
{props.children.map((child, i) => (
104104
<ContentTransformerNode key={i} {...child} />
105105
))}
106-
</Fragment>
106+
</>
107107
);
108108
}
109109

@@ -114,10 +114,10 @@ export const NodeContent = (props: NodeProps) => {
114114
export function renderTextContent(text: String) {
115115
const partsBetweenLineBreaks = text.split(/\n/g);
116116
if (partsBetweenLineBreaks.length === 1) {
117-
return <Fragment>{text}</Fragment>;
117+
return <>{text}</>;
118118
}
119119
return (
120-
<Fragment>
120+
<>
121121
{partsBetweenLineBreaks.map((part: String, index: Number) => {
122122
const key = index.toString();
123123
if (index === partsBetweenLineBreaks.length - 1) {
@@ -130,7 +130,7 @@ export function renderTextContent(text: String) {
130130
</Fragment>
131131
);
132132
})}
133-
</Fragment>
133+
</>
134134
);
135135
}
136136

@@ -141,10 +141,10 @@ export const ContentTransformerNode = (props: NodeProps): JSX.Element => {
141141
const { type, kind, textContent } = props;
142142

143143
if (type) {
144-
const t = type as keyof typeof Renderers;
145-
const override = overrides?.[t] as () => JSX.Element;
144+
const tag = type as keyof typeof Renderers;
145+
const override = overrides?.[tag] as () => JSX.Element;
146146

147-
Renderer = override || Renderers[type as keyof typeof Renderers];
147+
Renderer = override || Renderers[tag];
148148
}
149149

150150
if (!Renderer) {

src/content-transformer/types.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { ReactElement } from 'react';
2-
31
interface NodeMetadata {
42
[key: string]: any;
53
}
@@ -12,7 +10,7 @@ export interface NodeProps {
1210
metadata?: NodeMetadata;
1311
}
1412

15-
export type Override = (props: NodeProps) => ReactElement<any, any> | null | string;
13+
export type Override = (props: NodeProps) => JSX.Element;
1614

1715
export interface Overrides {
1816
link?: Override;

0 commit comments

Comments
 (0)