Skip to content

Commit 2e7fe0b

Browse files
committed
Fixed MDX provider context
- MDX provider was not working, Fixed - fixed wrong type definition
1 parent f7638a1 commit 2e7fe0b

2 files changed

Lines changed: 32 additions & 12 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"main": "./dist/jsx-runtime.js",
66
"type": "module",
77
"module": "./dist/jsx-runtime.js",
8+
"types": "./dist/jsx-runtime.d.ts",
89
"exports": {
910
".": {
1011
"worker": {
@@ -60,7 +61,6 @@
6061
"./jsx-runtime": "./dist/jsx-runtime.js",
6162
"./jsx-dev-runtime": "./dist/jsx-runtime.js"
6263
},
63-
"types": "./dist/index/index.d.ts",
6464
"files": [
6565
"dist",
6666
"types.d.ts"

src/jsx-runtime.ts

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,44 @@
1-
import { createComponent, createContext, JSX, mergeProps, ParentProps, useContext } from 'solid-js';
1+
import {
2+
createComponent,
3+
createContext,
4+
JSX,
5+
JSXElement,
6+
mergeProps,
7+
ParentProps,
8+
useContext,
9+
} from 'solid-js';
210
import { Dynamic } from 'solid-js/web';
311
import { isFirstLetterCapital, isSVGElement, normalizeKeySvg } from 'utilities';
412

5-
export const MDXContext = createContext({});
13+
export const MDXContext = createContext<Record<string, (properties_: unknown) => JSX.Element>>(
14+
Object.create(null) as Record<string, (properties_: unknown) => JSX.Element>,
15+
);
616

717
export const MDXProvider = (
818
properties: ParentProps<{
9-
components: Record<string, (properties_: ParentProps) => JSX.Element>;
19+
components: Record<string, (properties_: unknown) => JSX.Element>;
1020
}>,
11-
): JSX.Element =>
12-
createComponent(MDXContext.Provider, {
13-
value: {
14-
...useContext(MDXContext),
15-
...properties.components,
21+
): JSXElement => {
22+
const context = useContext(MDXContext);
23+
return createComponent(MDXContext.Provider, {
24+
get value() {
25+
return {
26+
...context,
27+
...properties.components,
28+
};
29+
},
30+
get children() {
31+
return properties.children;
1632
},
17-
children: properties.children,
1833
});
34+
};
1935

20-
export const useMDXComponents = (): Record<string, (properties: ParentProps) => JSX.Element> =>
21-
useContext(MDXContext);
36+
export const useMDXComponents = (
37+
components: Record<string, (properties_: unknown) => JSX.Element>,
38+
): Record<string, (properties_: unknown) => JSX.Element> => {
39+
const contextComponents = useContext(MDXContext);
40+
return { ...contextComponents, ...components };
41+
};
2242

2343
const REPLACED_COMPAT_SET = new Set(['mjx']);
2444
const compatRegExp = new RegExp(`(?:${[...REPLACED_COMPAT_SET].join('|')})-.+`, 'g');

0 commit comments

Comments
 (0)