import React, { createContext, useContext, useMemo } from "react"; import { useMediaQuery } from "./useMediaQuery"; export const MediaQueryContext = createContext(null); const mediaQueries = { phone: "(max-width: 480px)", mobile: "(max-width: 767px)", small: "(max-width: 991px)", prefersReducedMotion: "(prefers-reduced-motion: reduce)", }; export function MediaQueryProvider({ children }) { const phoneView = useMediaQuery(mediaQueries.phone); const mobileView = useMediaQuery(mediaQueries.mobile); const smallScreen = useMediaQuery(mediaQueries.small); const prefersReducedMotion = useMediaQuery(mediaQueries.prefersReducedMotion); const value = useMemo(() => ({ mobileView, prefersReducedMotion, smallScreen, phoneView }), [ mobileView, prefersReducedMotion, smallScreen, phoneView, ]); return <MediaQueryContext.Provider value={value}>{children}</MediaQueryContext.Provider>; } export function useMediaQueryContext() { return useContext(MediaQueryContext); }