Skip to content

Commit 35175d8

Browse files
authored
Merge pull request #39 from PelicanPlatform/fix-dark-mode
Doc Updates
2 parents af5e914 + bab8657 commit 35175d8

File tree

9 files changed

+941
-683
lines changed

9 files changed

+941
-683
lines changed

components/DownloadsComponent.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import fetchFilteredReleases from "../utils/fetchReleases";
55
import { FilteredRelease, ArchEnums, OSEnums, SemverRegex } from '../utils/types';
66
import {OperatingSystems, Architectures, Versions} from './Filters';
77
import ReleasesTable from './ReleasesTable';
8-
import { DarkLightContainer } from '@/utils/darkLightContainer';
98
import { useTheme } from '@mui/material/styles';
109
import { parseEnum } from '@/utils/utils';
1110

@@ -162,7 +161,6 @@ const DownloadsComponent: React.FC = () => {
162161
};
163162

164163
return (
165-
<DarkLightContainer>
166164
<Box sx={{
167165
display: 'flex',
168166
flexDirection: 'column',
@@ -173,7 +171,6 @@ const DownloadsComponent: React.FC = () => {
173171
}}>
174172
{renderContent()}
175173
</Box>
176-
</DarkLightContainer>
177174
);
178175
};
179176

components/ParameterBox.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ export const ParameterBox: React.FC<{ parameter: ParameterDetail }> = ({ paramet
1212
const groupName = parts.length > 1 ? parts.slice(0, -1).join('.') : null;
1313
const parameterName = parts.length > 1 ? parts[parts.length - 1] : parameter.name;
1414
const parameterId = parameter.name.replace(".", "-")
15-
const theme = useTheme();
1615

1716
return (
1817
<Box
@@ -55,7 +54,7 @@ export const ParameterBox: React.FC<{ parameter: ParameterDetail }> = ({ paramet
5554
<Box p={1} sx={{
5655
borderRadius: "0.5em",
5756
marginTop: "0.5em",
58-
backgroundColor: theme.palette.mode === "light" ? "#e7e7e7" : "#666666"
57+
backdropFilter: "contrast(1)"
5958
}}>
6059
{parameter.components && (
6160
<Typography variant="body2">

components/Parameters.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import { ParametersArray, ParameterDetail } from "../utils/types";
66
import { ParameterBox } from "./ParameterBox";
77
import { ParameterChips } from './ParameterChips';
88
import { Link } from "@mui/icons-material";
9-
import { DarkLightContainer } from '@/utils/darkLightContainer';
109

1110
const Parameters: React.FC<{ parameters: ParametersArray }> = ({ parameters }) => {
1211
const [searchValue, setSearchValue] = useState('');
@@ -40,7 +39,7 @@ const Parameters: React.FC<{ parameters: ParametersArray }> = ({ parameters }) =
4039
return groups;
4140
}, [filteredParameters]);
4241
return (
43-
<DarkLightContainer>
42+
<>
4443
<Box>
4544
<Autocomplete
4645
disablePortal
@@ -99,15 +98,15 @@ const Parameters: React.FC<{ parameters: ParametersArray }> = ({ parameters }) =
9998
<Divider sx={{ height: "0.5em", backgroundColor: "#0885ff", width: "100%", borderRadius: "0.5em" }} />
10099
)}
101100
{groupParams.map((param, index) => (
102-
<ParameterBox key={index} parameter={param} />
101+
<ParameterBox key={param.name} parameter={param} />
103102
))}
104103
</Box>
105104
))}
106105
{filteredParameters.length === 0 && (searchValue || selectedComponent) ? (
107106
<Typography variant="h5">No results found</Typography>
108107
) : null}
109108
</Box>
110-
</DarkLightContainer>
109+
</>
111110
);
112111
};
113112

components/ThemeProvider.tsx

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
'use client';
2+
3+
import React, { useEffect } from 'react'
4+
import { useTheme } from 'next-themes'
5+
import { ThemeProvider as MuiThemeProvider, createTheme, useColorScheme } from '@mui/material/styles';
6+
import CssBaseline from '@mui/material/CssBaseline';
7+
8+
const muiTheme = createTheme({
9+
colorSchemes: {
10+
dark: true,
11+
},
12+
});
13+
14+
const MaterialThemeProvider = ({ children }: { children: React.ReactNode }) => {
15+
return (
16+
17+
<MuiThemeProvider theme={muiTheme}>
18+
<>
19+
<CssBaseline />
20+
{children}
21+
</>
22+
</MuiThemeProvider>
23+
)
24+
}
25+
26+
const ThemeUnifier = ({ children }: { children: React.ReactNode }) => {
27+
28+
const { theme } = useTheme();
29+
const { mode, setMode } = useColorScheme();
30+
31+
// Sync MUI mode with Nextra theme
32+
useEffect(() => {
33+
if(theme !== mode){
34+
setMode(theme as 'light' | 'dark' | 'system');
35+
}
36+
}, [theme, mode]);
37+
38+
return (
39+
<>
40+
{children}
41+
</>
42+
)
43+
}
44+
45+
const ThemeProvider = ({ children }: { children: React.ReactNode }) => {
46+
return (
47+
<MaterialThemeProvider>
48+
<ThemeUnifier>
49+
{children}
50+
</ThemeUnifier>
51+
</MaterialThemeProvider>
52+
)
53+
}
54+
55+
56+
export default ThemeProvider;

next-env.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/// <reference types="next" />
22
/// <reference types="next/image-types/global" />
3+
/// <reference path="./.next/types/routes.d.ts" />
34

45
// NOTE: This file should not be edited
56
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.

0 commit comments

Comments
 (0)