diff --git a/src-web/components/GraphQLEditor.tsx b/src-web/components/GraphQLEditor.tsx index d1c50d5e..2027e021 100644 --- a/src-web/components/GraphQLEditor.tsx +++ b/src-web/components/GraphQLEditor.tsx @@ -71,7 +71,7 @@ export function GraphQLEditor({ defaultValue, onChange, baseRequest, ...extraEdi const dialog = useDialog(); return ( -
+
= 0 && status < 100 && 'bg-red-600', status >= 100 && status < 200 && 'bg-yellow-600', status >= 200 && status < 300 && 'bg-green-600', diff --git a/src-web/hooks/useTheme.ts b/src-web/hooks/useTheme.ts index d049caf7..f1f4c6d3 100644 --- a/src-web/hooks/useTheme.ts +++ b/src-web/hooks/useTheme.ts @@ -1,7 +1,9 @@ import { useEffect } from 'react'; +import { getKeyValue } from '../lib/keyValueStore'; import type { Appearance } from '../lib/theme/window'; import { getAppearance, + getPreferredAppearance, setAppearance, subscribeToPreferredAppearanceChange, } from '../lib/theme/window'; @@ -24,7 +26,14 @@ export function useTheme() { useEffect(() => setAppearance(appearanceKv.value), [appearanceKv.value]); return { - appearance: appearanceKv.value, + appearance: appearanceKv.value ?? getAppearance(), toggleAppearance: handleToggleAppearance, }; } + +export async function getAppearanceKv() { + return getKeyValue({ + key: 'appearance', + fallback: getPreferredAppearance(), + }); +} diff --git a/src-web/lib/theme/window.ts b/src-web/lib/theme/window.ts index 14d70a8d..2839d37b 100644 --- a/src-web/lib/theme/window.ts +++ b/src-web/lib/theme/window.ts @@ -12,7 +12,7 @@ const darkTheme: AppTheme = { colors: { gray: '#6b5b98', red: '#ff417b', - orange: '#ff9411', + orange: '#ff9011', yellow: '#e8d13f', green: '#43e76f', blue: '#219dff', @@ -31,11 +31,11 @@ const lightTheme: AppTheme = { colors: { gray: '#7f8fb0', red: '#ec3f87', - orange: '#ff8b00', + orange: '#ff8000', yellow: '#e7cf24', green: '#00d365', blue: '#0090ff', - pink: '#f670f6', + pink: '#ea6cea', violet: '#ac6cff', }, }, @@ -50,14 +50,6 @@ export function getAppearance(): Appearance { return getPreferredAppearance(); } -export function toggleAppearance(): Appearance { - const currentTheme = - document.documentElement.getAttribute('data-appearance') ?? getPreferredAppearance(); - const newAppearance = currentTheme === 'dark' ? 'light' : 'dark'; - setAppearance(newAppearance); - return newAppearance; -} - export function setAppearance(a?: Appearance) { const appearance = a ?? getPreferredAppearance(); const theme = appearance === 'dark' ? darkTheme : lightTheme;