Skip to content

Commit 4b2c006

Browse files
committed
Drop context, use prop drilling
This will pave the way for server components
1 parent b83b0a5 commit 4b2c006

File tree

2 files changed

+8
-16
lines changed

2 files changed

+8
-16
lines changed

src/content-transformer/component.tsx

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
'use client';
2-
3-
import { Fragment, createContext, useContext } from 'react';
1+
import { Fragment } from 'react';
42
import { NodeProps, Overrides } from './types';
53
export { NodeProps, Overrides };
64

@@ -139,8 +137,6 @@ export interface Props {
139137
json?: NodeProps[] | NodeProps;
140138
}
141139

142-
export const OverridesContext = createContext<Overrides | null>(null);
143-
144140
export const NodeContent = (props: NodeProps) => {
145141
const { textContent } = props;
146142

@@ -187,9 +183,8 @@ export function renderTextContent(text: String) {
187183

188184
export const ContentTransformerNode = (props: NodeProps): JSX.Element => {
189185
let Renderer = Renderers.span;
190-
const overrides = useContext(OverridesContext);
191186

192-
const { type, kind, textContent } = props;
187+
const { type, kind, textContent, overrides } = props;
193188

194189
if (type) {
195190
const tag = type as keyof typeof Renderers;
@@ -219,19 +214,15 @@ export const ContentTransformer = ({ overrides = null, json }: Props) => {
219214
if (Array.isArray(json)) {
220215
const nodes: NodeProps[] = json;
221216
return (
222-
<OverridesContext.Provider value={overrides}>
217+
<Fragment>
223218
{nodes.map((j, i) => (
224-
<ContentTransformerNode key={i} {...j} />
219+
<ContentTransformerNode key={i} {...j} overrides={overrides} />
225220
))}
226-
</OverridesContext.Provider>
221+
</Fragment>
227222
);
228223
}
229224

230225
const node: NodeProps = json;
231226

232-
return (
233-
<OverridesContext.Provider value={overrides}>
234-
<ContentTransformerNode {...node} />
235-
</OverridesContext.Provider>
236-
);
227+
return <ContentTransformerNode {...node} overrides={overrides} />;
237228
};

src/content-transformer/types.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ export interface NodeProps {
88
textContent?: string;
99
children?: [NodeProps];
1010
metadata?: NodeMetadata;
11+
overrides?: Overrides | null;
1112
}
1213

13-
export type Override = (props: NodeProps) => JSX.Element;
14+
export type Override = (props: NodeProps) => React.ReactNode;
1415

1516
export interface Overrides {
1617
link?: Override;

0 commit comments

Comments
 (0)