@react-hooks-hub/use-media-query is a custom React hook that provides the state of the screen's device type (desktop, tablet, mobile) and orientation (portrait, landscape). It's designed to create responsive interfaces and adapt content based on screen size.
Use your preferred package manager to install @react-hooks-hub/use-media-query
:
npm install @react-hooks-hub/use-media-query
# or
yarn add @react-hooks-hub/use-media-query
Import and use the useMediaQuery hook in your component:
import React from 'react';
import { useMediaQuery } from '@react-hooks-hub/use-media-query';
const MyComponent = () => {
const { device, orientation } = useMediaQuery();
return (
<div>
<p>Device: {device}</p>
<p>Orientation: {orientation}</p>
</div>
);
};
export default MyComponent;
You can customize the behavior of the hook by passing options when using it:
const { device, orientation } = useMediaQuery({
breakpoints: { desktop: 1200, tablet: 768, mobile: 0 },
debounceDelay: 300
});
- breakpoints: An object defining the breakpoints for each device type. By default, breakpoints are set for desktop, tablet, and mobile.
- debounceDelay: Debounce delay to limit frequent calls during window resizing.
Custom Screen Sizes You can define custom screen sizes in the breakpoints option:
const { device } = useMediaQuery({
breakpoints: { desktop: 1200, tablet: 768, mobile: 0, custom: 1500 }
});
// Usage in JSX
{device === 'custom' && <p>Custom screen size</p>}
MIT