Skip to content

Commit 6aefcd7

Browse files
committed
fix: fixed an illegal use of useContext
1 parent c063a04 commit 6aefcd7

File tree

2 files changed

+27
-11
lines changed

2 files changed

+27
-11
lines changed

src/context/config-provider.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,18 @@ export type GetConfigProviderContext = () => [React.Context<DefaultConfigConsume
1616

1717
export function useMergedConfigContext(getConfigProviderContext?: GetConfigProviderContext) {
1818

19-
const [ConfigProviderContext = {}] = getConfigProviderContext?.() ?? [];
19+
const [ConfigProviderContext] = getConfigProviderContext?.() ?? [];
2020

21-
return React.useContext({
22-
...DefaultConfigProviderContext,
23-
...ConfigProviderContext,
24-
})
25-
}
21+
const defaultContext = React.useContext(DefaultConfigProviderContext);
22+
23+
const context = React.useContext<DefaultConfigConsumerProps>(ConfigProviderContext);
24+
25+
const mergedContext = React.useMemo(() => {
26+
return {
27+
...defaultContext,
28+
...context
29+
};
30+
}, [context, defaultContext]);
31+
32+
return mergedContext;
33+
}

src/context/theme-provider.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,19 @@ export function useMergedThemeContext<
5656
hashed: true,
5757
});
5858

59-
const [ThemeProviderContext = {}] = getThemeProviderContext?.() ?? [];
59+
const [ThemeProviderContext] = getThemeProviderContext?.() ?? [];
6060

61-
return React.useContext({
62-
...DefaultThemeProviderContext,
63-
...ThemeProviderContext,
64-
});
61+
const defaultContext = React.useContext(DefaultThemeProviderContext);
62+
63+
const context = React.useContext(ThemeProviderContext);
64+
65+
const mergedContext = React.useMemo(() => {
66+
return {
67+
...defaultContext,
68+
...context
69+
};
70+
}, [context, defaultContext]);
71+
72+
return mergedContext;
6573
}
6674

0 commit comments

Comments
 (0)