scrabble-solver
Version:
Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Crossplay, Literaki, and Kelimelik. Quickly find the top-scoring words using the given board and tiles.
35 lines (25 loc) • 807 B
text/typescript
import { useEffect, useState } from 'react';
const getInitialState = (query: string, defaultState?: boolean) => {
if (typeof defaultState !== 'undefined') {
return defaultState;
}
if (typeof window === 'undefined') {
return false;
}
return window.matchMedia(query).matches;
};
export const useMedia = (query: string, defaultState?: boolean) => {
const [state, setState] = useState(getInitialState(query, defaultState));
useEffect(() => {
const mediaQuery = window.matchMedia(query);
const handleChange = () => {
setState(mediaQuery.matches);
};
setState(mediaQuery.matches);
mediaQuery.addEventListener('change', handleChange);
return () => {
mediaQuery.removeEventListener('change', handleChange);
};
}, [query]);
return state;
};