Skip to content

Commit 88cf614

Browse files
committed
Fix: Keep MUI optional
1 parent b34dbf8 commit 88cf614

File tree

6 files changed

+37
-12
lines changed

6 files changed

+37
-12
lines changed

src/Display/Artwork/Artwork.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
"use client";
22

3-
import React, { Suspense, lazy } from "react";
3+
import React from "react";
44
import { ArtworkGov } from "./ArtworkGov";
55
import { useIsGov } from "../../mui/useIsGov";
6-
const ArtworkWhiteLabel = lazy(() => import("./ArtworkWhiteLabel"));
6+
import { useArtworkWhiteLabel } from "./ArtworkWhiteLabel/useArtworkWhiteLabel";
7+
import { assert } from "tsafe/assert";
78

89
export function Artwork(props: { theme: "light" | "dark" | "system"; className?: string }) {
910
const { theme, className } = props;
1011

1112
const { isGov } = useIsGov();
13+
const { ArtworkWhiteLabel } = useArtworkWhiteLabel();
1214

1315
if (!isGov) {
14-
return (
15-
<Suspense>
16-
<ArtworkWhiteLabel theme={theme} sizePx={80} />
17-
</Suspense>
18-
);
16+
assert(ArtworkWhiteLabel !== undefined);
17+
18+
return <ArtworkWhiteLabel theme={theme} sizePx={80} />;
1919
}
2020

2121
return <ArtworkGov theme={theme} className={className} />;

src/Display/Artwork/ArtworkWhiteLabel.tsx renamed to src/Display/Artwork/ArtworkWhiteLabel/ArtworkWhiteLabel.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@ import React from "react";
44
import { useTheme } from "@mui/material/styles";
55
import { assert, type Equals } from "tsafe/assert";
66

7-
export default function ArtworkWhiteLabel(props: {
8-
theme: "light" | "dark" | "system";
9-
sizePx: number;
10-
}) {
7+
export function ArtworkWhiteLabel(props: { theme: "light" | "dark" | "system"; sizePx: number }) {
118
const { theme: theme_mode, sizePx } = props;
129

1310
const theme = useTheme();
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import React, { type ReactNode } from "react";
2+
import { context } from "./context";
3+
import { ArtworkWhiteLabel } from "./ArtworkWhiteLabel";
4+
5+
export function DisplayArtworkWhiteLabelProvider(props: { children: ReactNode }) {
6+
const { children } = props;
7+
8+
return <context.Provider value={ArtworkWhiteLabel}>{children}</context.Provider>;
9+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { JSX } from "../../../tools/JSX";
2+
import { createContext } from "react";
3+
4+
export const context = createContext<
5+
((props: { theme: "light" | "dark" | "system"; sizePx: number }) => JSX.Element) | undefined
6+
>(undefined);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { useContext } from "react";
2+
import { context } from "./context";
3+
4+
export function useArtworkWhiteLabel() {
5+
const ArtworkWhiteLabel = useContext(context);
6+
7+
return { ArtworkWhiteLabel };
8+
}

src/mui/mui.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { deepAssign } from "../tools/deepAssign";
1717
import { Global, css } from "@emotion/react";
1818
import { getAssetUrl } from "../tools/getAssetUrl";
1919
import { IsGovProvider } from "./useIsGov";
20+
import { DisplayArtworkWhiteLabelProvider } from "../Display/Artwork/ArtworkWhiteLabel/DisplayArtworkWhiteLabelProvider";
2021
import marianneFaviconSvgUrl from "../dsfr/favicon/favicon.svg";
2122
import blankFaviconSvgUrl from "../assets/blank-favicon.svg";
2223

@@ -597,7 +598,11 @@ export function createDsfrCustomBrandingProvider(params: {
597598
/>
598599
)}
599600
<IsGovProvider isGov={isGov}>
600-
<mui.ThemeProvider theme={theme}>{children}</mui.ThemeProvider>
601+
<mui.ThemeProvider theme={theme}>
602+
<DisplayArtworkWhiteLabelProvider>
603+
{children}
604+
</DisplayArtworkWhiteLabelProvider>
605+
</mui.ThemeProvider>
601606
</IsGovProvider>
602607
</>
603608
);

0 commit comments

Comments
 (0)