Initial commit
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# useIsMobile
|
||||
|
||||
Returns `true` when the viewport width is below a configurable breakpoint, and re-evaluates reactively on resize.
|
||||
|
||||
## Signature
|
||||
|
||||
```ts
|
||||
function useIsMobile(mobileBreakpoint?: number): boolean;
|
||||
```
|
||||
|
||||
| Parameter | Type | Default | Description |
|
||||
| ------------------ | -------- | ------- | ------------------------------------------------------------ |
|
||||
| `mobileBreakpoint` | `number` | `1024` | Viewport width (px) at which the device is considered mobile |
|
||||
|
||||
## Usage
|
||||
|
||||
```tsx
|
||||
function Navbar() {
|
||||
const isMobile = useIsMobile();
|
||||
|
||||
return isMobile ? <MobileNav /> : <DesktopNav />;
|
||||
}
|
||||
```
|
||||
|
||||
```tsx
|
||||
// Custom breakpoint
|
||||
const isTablet = useIsMobile(768);
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- Uses `window.matchMedia` for the resize listener (more efficient than `resize` event polling).
|
||||
- Returns `false` during SSR (initial state is `undefined`, coerced via `!!`).
|
||||
- Client-only (`'use client'`).
|
||||
Reference in New Issue
Block a user