UNPKG

sanity-plugin-icon-picker

Version:
22 lines (19 loc) 690 B
import { useEffect, useState } from 'react'; export default function useMedia( queries: string[], values: number[], defaultValue: number ): number { const mediaQueryLists = queries.map((q) => window.matchMedia(q)); const getValue = () => { const index = mediaQueryLists.findIndex((mql) => mql.matches); return typeof values[index] === 'undefined' ? defaultValue : values[index]; }; const [value, setValue] = useState(getValue); useEffect(() => { const handler = () => setValue(getValue); mediaQueryLists.forEach((mql) => mql.addListener(handler)); return () => mediaQueryLists.forEach((mql) => mql.removeListener(handler)); }, []); return value; }