Skip to content

Commit d65257f

Browse files
committed
Initialize dark mode state from OS color scheme preference
Read prefers-color-scheme media query on mount so the toggle button icon and hero image match the actual theme from first render.
1 parent e8d7dd7 commit d65257f

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

  • samples/client/react/shell/src

samples/client/react/shell/src/App.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,13 @@ function ShellContent({ config, client, sendAndProcessRef }: ShellContentProps)
9292
const [error, setError] = useState<string | null>(null);
9393
const [messages, setMessages] = useState<Types.ServerToClientMessage[]>([]);
9494
const [loadingTextIndex, setLoadingTextIndex] = useState(0);
95-
const [isDarkMode, setIsDarkMode] = useState(false);
95+
const [isDarkMode, setIsDarkMode] = useState(() => {
96+
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
97+
if (prefersDark) {
98+
document.body.classList.add('dark');
99+
}
100+
return prefersDark;
101+
});
96102

97103
// Get actions from the A2UI context
98104
const { processMessages, clearSurfaces, getSurfaces } = useA2UIActions();

0 commit comments

Comments
 (0)