INNER CODE UNIT · TypeScript
getBreakpointQueries
libnyanpasu/clash-nyanpasu · frontend/hooks/src/index.ts:18
const getBreakpointQueries = (): [Breakpoint, MediaQueryList][] =>
(breakpointQueries ??= BREAKPOINT_ORDER.slice(1).map(
(breakpoint) =>
[
breakpoint,
window.matchMedia(`(min-width: ${BREAKPOINT_VALUES[breakpoint]}px)`),
] as [Breakpoint, MediaQueryList],
))
const subscribeBreakpoint = (onChange: () => void) => {
const queries = getBreakpointQueries()
queries.forEach(([, query]) => query.addEventListener('change', onChange))
return () => {
queries.forEach(([, query]) =>
query.removeEventListener('change', onChange),
)