import React, { createContext, use, useMemo } from 'react'; import { useWindowDimensions } from 'react-native'; import { getBreakpointFromWidth } from './getBreakpointFromWidth'; import type { ResponsiveRuntime } from './types'; const ResponsiveContext = createContext(null); export function ResponsiveProvider({ children }: { children: React.ReactNode }) { const { width } = useWindowDimensions(); const value = useMemo( () => ({ breakpoint: getBreakpointFromWidth(width), width, }), [width], ); return {children}; } export function useResponsiveRuntime(): ResponsiveRuntime { const runtime = use(ResponsiveContext); if (!runtime) { throw new Error('useResponsiveRuntime must be used within a ResponsiveProvider'); } return runtime; }