@@ -14,30 +14,34 @@ type SubQuery = {
1414type Query = Array < SubQuery > ;
1515
1616export function useMediaQuery ( query : SubQuery | Query ) {
17- let dims = useWindowDimensions ( ) ;
17+ const dims = useWindowDimensions ( ) ;
1818 const height = dims ?. height ;
1919 const width = dims ?. width ;
20+
2021 return iterateQuery ( query , height , width ) ;
2122}
2223
24+ function queryResolver ( query : any , width ?: number , height ?: number ) {
25+ for ( const queryKey in query ) {
26+ if ( ! calculateQuery ( queryKey , query [ queryKey ] , height , width ) ) {
27+ return false ;
28+ }
29+ }
30+ return true ;
31+ }
32+
2333function iterateQuery (
2434 query : SubQuery | Query ,
2535 height ?: number ,
2636 width ?: number
2737) {
28- let key ;
29- let val ;
30- let queryResults = [ ] ;
38+ const queryResults = [ ] ;
3139 if ( Array . isArray ( query ) ) {
3240 query . forEach ( ( subQuery : SubQuery ) => {
33- key = Object . keys ( subQuery ) [ 0 ] ;
34- val = Object . values ( subQuery ) [ 0 ] ;
35- queryResults . push ( calculateQuery ( key , val , height , width ) ) ;
41+ queryResults . push ( queryResolver ( subQuery , width , height ) ) ;
3642 } ) ;
3743 } else {
38- key = Object . keys ( query ) [ 0 ] ;
39- val = Object . values ( query ) [ 0 ] ;
40- queryResults . push ( calculateQuery ( key , val , height , width ) ) ;
44+ queryResults . push ( queryResolver ( query , width , height ) ) ;
4145 }
4246 return queryResults ;
4347}
0 commit comments