fix: new changes

This commit is contained in:
dvelo 2024-12-21 18:11:07 -06:00
parent a019e1e5b1
commit b49b73af80
5 changed files with 33 additions and 7 deletions

@ -128,7 +128,7 @@ export async function generateMetadata(
export default function ServerPage({ params }: { params: { server: string } }) { export default function ServerPage({ params }: { params: { server: string } }) {
return ( return (
<main> <main style={{ "color-scheme": "dark" } as React.CSSProperties}>
<ColorProvider server={params.server}> <ColorProvider server={params.server}>
<div className={"pt-[300px] xl:px-[100px]"}> <div className={"pt-[300px] xl:px-[100px]"}>
<Banner server={params.server} /> <Banner server={params.server} />

@ -97,7 +97,7 @@ export async function generateMetadata(
export default function ServerPage({ params }: { params: { server: string } }) { export default function ServerPage({ params }: { params: { server: string } }) {
return ( return (
<main> <main style={{ "color-scheme": "dark" } as React.CSSProperties}>
<ColorProvider server={params.server}> <ColorProvider server={params.server}>
<div className={"pt-[300px] xl:px-[100px]"}> <div className={"pt-[300px] xl:px-[100px]"}>
<Banner server={params.server} /> <Banner server={params.server} />

@ -66,7 +66,7 @@ export default function Banner({ server }: { server: string }) {
? bannerURL ? bannerURL
: "wsrv.nl/?url=" + encodeURIComponent(bannerURL) + "?n=-1" : "wsrv.nl/?url=" + encodeURIComponent(bannerURL) + "?n=-1"
} }
className="rounded align-middle block ml-auto mr-auto absolute left-0 z-0 max-h-[400px] w-full object-fill" className="rounded align-middle block ml-auto mr-auto absolute left-0 z-0 w-full object-fill"
alt="User-provided banner for this server." alt="User-provided banner for this server."
style={ style={
{ {

@ -33,6 +33,7 @@
import * as React from "react"; import * as React from "react";
import { ThemeProvider as NextThemesProvider, useTheme } from "next-themes"; import { ThemeProvider as NextThemesProvider, useTheme } from "next-themes";
import { type ThemeProviderProps } from "next-themes"; import { type ThemeProviderProps } from "next-themes";
import { usePathname } from "next/navigation";
declare global { declare global {
interface Document { interface Document {
@ -48,6 +49,7 @@ declare global {
export function ThemeProvider({ children, ...props }: ThemeProviderProps) { export function ThemeProvider({ children, ...props }: ThemeProviderProps) {
const [mounted, setMounted] = React.useState(false); const [mounted, setMounted] = React.useState(false);
const pathname = usePathname();
React.useEffect(() => { React.useEffect(() => {
setMounted(true); setMounted(true);
@ -55,7 +57,14 @@ export function ThemeProvider({ children, ...props }: ThemeProviderProps) {
if (!mounted) return null; if (!mounted) return null;
return <NextThemesProvider {...props}>{children}</NextThemesProvider>; return (
<NextThemesProvider
forcedTheme={pathname?.startsWith("/server") ? "dark" : undefined}
{...props}
>
{children}
</NextThemesProvider>
);
} }
interface UseThemeTransitionResult { interface UseThemeTransitionResult {

@ -39,9 +39,11 @@ import {
DropdownMenuTrigger, DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"; } from "@/components/ui/dropdown-menu";
import { useThemeTransition } from "./ThemeProvider"; import { useThemeTransition } from "./ThemeProvider";
import { usePathname } from "next/navigation";
export function ModeToggle() { export function ModeToggle() {
const { changeTheme } = useThemeTransition(); const { changeTheme } = useThemeTransition();
const pathname = usePathname();
return ( return (
<DropdownMenu> <DropdownMenu>
@ -53,13 +55,28 @@ export function ModeToggle() {
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent align="end"> <DropdownMenuContent align="end">
<DropdownMenuItem onClick={() => changeTheme("light")}> {pathname?.startsWith("/server") && (
<div className="text-sm p-4">
For compatibility reasons, <br /> server pages are forced to dark
mode
</div>
)}
<DropdownMenuItem
onClick={() => changeTheme("light")}
disabled={pathname?.startsWith("/server")}
>
Light Light
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem onClick={() => changeTheme("dark")}> <DropdownMenuItem
onClick={() => changeTheme("dark")}
disabled={pathname?.startsWith("/server")}
>
Dark Dark
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem onClick={() => changeTheme("system")}> <DropdownMenuItem
onClick={() => changeTheme("system")}
disabled={pathname?.startsWith("/server")}
>
System System
</DropdownMenuItem> </DropdownMenuItem>
</DropdownMenuContent> </DropdownMenuContent>