@tkirk1/react-native-grid2
Version:
Cross-platform MUI Grid v2 implementation for React Native. Drop-in replacement for Material-UI Grid with breakpoint-aware responsive layouts, TypeScript support, and mobile-first design.
29 lines • 1.24 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { createContext, useContext, useMemo } from 'react';
import { useBreakpoint } from '../hooks/useBreakpoint';
import { DEFAULT_BREAKPOINTS } from '../utils/breakpoints';
const BreakpointContext = createContext(undefined);
/**
* Provider component that supplies breakpoint context to child components
*/
export const BreakpointProvider = ({ children, breakpoints }) => {
const customBreakpoints = useMemo(() => breakpoints ? { ...DEFAULT_BREAKPOINTS, ...breakpoints } : DEFAULT_BREAKPOINTS, [breakpoints]);
const { breakpoint, screenWidth } = useBreakpoint(breakpoints);
const value = useMemo(() => ({
breakpoints: customBreakpoints,
currentBreakpoint: breakpoint,
screenWidth,
}), [customBreakpoints, breakpoint, screenWidth]);
return (_jsx(BreakpointContext.Provider, { value: value, children: children }));
};
/**
* Hook to access breakpoint context
*/
export const useBreakpointContext = () => {
const context = useContext(BreakpointContext);
if (!context) {
throw new Error('useBreakpointContext must be used within a BreakpointProvider');
}
return context;
};
//# sourceMappingURL=BreakpointContext.js.map