|
1 |
| -import { Children, PartialBentoConfig } from "."; |
| 1 | +import { BentoConfig, Children, PartialBentoConfig } from "."; |
2 | 2 | import { bentoSprinkles } from "./internal";
|
3 | 3 | import { ToastProvider } from "./Toast/ToastProvider";
|
4 | 4 | import { OverlayProvider } from "@react-aria/overlays";
|
5 | 5 | import { DefaultMessages, DefaultMessagesContext } from "./DefaultMessagesContext";
|
6 | 6 | import { LinkComponentContext, LinkComponentProps } from "./util/link";
|
7 |
| -import { ComponentType, useContext } from "react"; |
| 7 | +import { ComponentType, useContext, useMemo } from "react"; |
8 | 8 | import { I18nProvider } from "@react-aria/i18n";
|
9 |
| -import { BentoConfigProvider } from "./BentoConfigContext"; |
| 9 | +import { BentoConfigProvider, deepmerge } from "./BentoConfigContext"; |
10 | 10 | import { SprinklesFn } from "./util/ConfigurableTypes";
|
11 | 11 | import { SprinklesContext } from "./SprinklesContext";
|
12 | 12 | import { BentoTheme, BentoThemeProvider } from "./BentoThemeContext";
|
@@ -88,11 +88,16 @@ export function createBentoProvider(
|
88 | 88 | ...props
|
89 | 89 | }: Props) {
|
90 | 90 | const linkComponentFromContext = useContext(LinkComponentContext);
|
| 91 | + const defaultMessagesValue = useMemo(() => { |
| 92 | + return { |
| 93 | + defaultMessages, |
| 94 | + }; |
| 95 | + }, [defaultMessages]); |
91 | 96 | return (
|
92 | 97 | <I18nProvider locale={locale}>
|
93 | 98 | <OverlayProvider style={{ height: "100%" }}>
|
94 |
| - <DefaultMessagesContext.Provider value={{ defaultMessages }}> |
95 |
| - <BentoConfigProvider value={props.config ?? config}> |
| 99 | + <DefaultMessagesContext.Provider value={defaultMessagesValue}> |
| 100 | + <BentoConfigProvider value={deepmerge(config, props.config) as BentoConfig}> |
96 | 101 | <OptionalThemeWrapper theme={props.theme || theme}>
|
97 | 102 | <SprinklesContext.Provider value={props.sprinkles ?? sprinkles}>
|
98 | 103 | <LinkComponentContext.Provider value={linkComponent ?? linkComponentFromContext}>
|
|
0 commit comments