Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Download frontend/src/hooks/useThemeMode.js from fr-gouv-coordination-ia/llm_leaderboard_fr: direct link, hf CLI and curl.
- Browser
- Download file 855 Bytes
-
https://huggingface.co/spaces/fr-gouv-coordination-ia/llm_leaderboard_fr/resolve/e2dd0d8a818d68859b4ee84baaa27175b111dafa/frontend/src/hooks/useThemeMode.js
- Command line
-
hf download hf://spaces/fr-gouv-coordination-ia/llm_leaderboard_fr@e2dd0d8a818d68859b4ee84baaa27175b111dafa/frontend/src/hooks/useThemeMode.js
-
curl -L -o useThemeMode.js https://huggingface.co/spaces/fr-gouv-coordination-ia/llm_leaderboard_fr/resolve/e2dd0d8a818d68859b4ee84baaa27175b111dafa/frontend/src/hooks/useThemeMode.js
855 Bytes
| import { useState, useEffect } from 'react'; | |
| export const useThemeMode = () => { | |
| // Get system preference | |
| const getSystemPreference = () => { | |
| return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; | |
| }; | |
| // Initialize theme mode from system preference | |
| const [mode, setMode] = useState(getSystemPreference); | |
| // Listen to system preference changes | |
| useEffect(() => { | |
| const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); | |
| const handleChange = (e) => { | |
| setMode(e.matches ? 'dark' : 'light'); | |
| }; | |
| mediaQuery.addEventListener('change', handleChange); | |
| return () => mediaQuery.removeEventListener('change', handleChange); | |
| }, []); | |
| const toggleTheme = () => { | |
| setMode((prevMode) => (prevMode === 'light' ? 'dark' : 'light')); | |
| }; | |
| return { mode, toggleTheme }; | |
| }; |