Files
music-metadata-manager/music-metadata-manager-frontend/src/hooks/use-mobile.ts
Gabriel Kaszewski 1c3ca344c0
Some checks failed
CI / Check Style (push) Failing after 50s
CI / Run Clippy (push) Failing after 4m58s
CI / Run Tests (push) Failing after 3h0m14s
feat: add UI components for skeleton, slider, sonner, switch, table, tabs, textarea, toggle group, toggle, tooltip, and mobile detection hook
- Implemented Skeleton component for loading states.
- Created Slider component using Radix UI for customizable sliders.
- Added Sonner component for toast notifications with theme support.
- Developed Switch component for toggle functionality.
- Introduced Table component with subcomponents for structured data display.
- Built Tabs component for tabbed navigation.
- Created Textarea component for multi-line text input.
- Implemented ToggleGroup and Toggle components for grouped toggle buttons.
- Added Tooltip component for displaying additional information on hover.
- Created useIsMobile hook for mobile device detection.
- Added utility functions for class name merging.
- Configured TypeScript settings for the project.
2025-07-26 01:12:25 +02:00

20 lines
565 B
TypeScript

import * as React from "react"
const MOBILE_BREAKPOINT = 768
export function useIsMobile() {
const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)
React.useEffect(() => {
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)
const onChange = () => {
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
}
mql.addEventListener("change", onChange)
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
return () => mql.removeEventListener("change", onChange)
}, [])
return !!isMobile
}