usePersistedMediaQuery
▸ usePersistedMediaQuery(storageKey
, mediaQuery
): UsePersistedMediaQueryReturn
React hook for matching a media query and persisting the result in `localStorage``.
It returns null
if the window
object is not available, e.g. during SSR. Or a boolean
if the media query matches or not.
Important to note that the hook prioritizes the media query over the localStorage value and will update the localStorage value when the media query changes or if on load the media query matches.
Usage
import { usePersistedMediaQuery } from "@wethegit/react-hooks"
function Comp() {
const [prefersDarkMode, setDarkMode] = usePersistedMediaQuery("theme", "(prefers-color-scheme: dark)")
if (prefersDarkMode === null) {
// on the server, we don't know what the user prefers
// set your default theme here
}
return (
<button onClick={() => setDarkMode(!prefersDarkMode)}>Theme switcher</button>
)
}
Parameters
Name | Type |
---|---|
storageKey | string |
mediaQuery | string |
Returns
Array containing the state and a function to update it.
[boolean
| null
, (val
: boolean
) => void
]