mirror of
https://github.com/massbug/judge4c.git
synced 2025-05-17 23:12:23 +00:00
refactor(hooks): remove theme config and simplify theme hook
- Delete src/config/monaco-theme.ts and src/types/monaco-theme.ts - Simplify useMonacoTheme hook to directly return theme strings - Format use-mobile.ts with consistent semicolons and quotes
This commit is contained in:
parent
01b72209ae
commit
2e2e0315a8
@ -1,19 +0,0 @@
|
|||||||
import { MonacoTheme } from "@/types/monaco-theme";
|
|
||||||
|
|
||||||
// Define theme configurations
|
|
||||||
const MonacoThemeConfig = {
|
|
||||||
[MonacoTheme.GitHubLightDefault]: {
|
|
||||||
id: MonacoTheme.GitHubLightDefault,
|
|
||||||
label: "Github Light Default",
|
|
||||||
},
|
|
||||||
[MonacoTheme.GitHubDarkDefault]: {
|
|
||||||
id: MonacoTheme.GitHubDarkDefault,
|
|
||||||
label: "Github Dark Default",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
// Default Light and Dark theme configurations
|
|
||||||
const DefaultLightThemeConfig = MonacoThemeConfig[MonacoTheme.GitHubLightDefault];
|
|
||||||
const DefaultDarkThemeConfig = MonacoThemeConfig[MonacoTheme.GitHubDarkDefault];
|
|
||||||
|
|
||||||
export { MonacoThemeConfig, DefaultLightThemeConfig, DefaultDarkThemeConfig };
|
|
@ -1,19 +1,21 @@
|
|||||||
import * as React from "react"
|
import * as React from "react";
|
||||||
|
|
||||||
const MOBILE_BREAKPOINT = 768
|
const MOBILE_BREAKPOINT = 768;
|
||||||
|
|
||||||
export function useIsMobile() {
|
export function useIsMobile() {
|
||||||
const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)
|
const [isMobile, setIsMobile] = React.useState<boolean | undefined>(
|
||||||
|
undefined
|
||||||
|
);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
||||||
const onChange = () => {
|
const onChange = () => {
|
||||||
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
||||||
}
|
};
|
||||||
mql.addEventListener("change", onChange)
|
mql.addEventListener("change", onChange);
|
||||||
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
||||||
return () => mql.removeEventListener("change", onChange)
|
return () => mql.removeEventListener("change", onChange);
|
||||||
}, [])
|
}, []);
|
||||||
|
|
||||||
return !!isMobile
|
return !!isMobile;
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
import { useTheme } from "next-themes";
|
import { useTheme } from "next-themes";
|
||||||
import { DefaultLightThemeConfig, DefaultDarkThemeConfig } from "@/config/monaco-theme";
|
|
||||||
|
|
||||||
export function useMonacoTheme() {
|
export const useMonacoTheme = () => {
|
||||||
const { resolvedTheme } = useTheme();
|
const { resolvedTheme } = useTheme();
|
||||||
|
|
||||||
const currentTheme = resolvedTheme === "light" ? DefaultLightThemeConfig.id : DefaultDarkThemeConfig.id;
|
const theme =
|
||||||
|
resolvedTheme === "light" ? "github-light-default" : "github-dark-default";
|
||||||
|
|
||||||
return {
|
return { theme };
|
||||||
currentTheme,
|
};
|
||||||
};
|
|
||||||
}
|
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
export enum MonacoTheme {
|
|
||||||
GitHubLightDefault = "github-light-default",
|
|
||||||
GitHubDarkDefault = "github-dark-default",
|
|
||||||
}
|
|
||||||
|
|
||||||
export type MonacoThemeMetadata = {
|
|
||||||
id: MonacoTheme;
|
|
||||||
label: string;
|
|
||||||
};
|
|
Loading…
Reference in New Issue
Block a user