| 1234567891011121314151617181920212223242526272829303132333435 |
- /*
- Copyright (C) 2025 QuantumNous
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>.
- For commercial licensing, please contact support@quantumnous.com
- */
- export const MOBILE_BREAKPOINT = 768;
- import { useSyncExternalStore } from 'react';
- export const useIsMobile = () => {
- const query = `(max-width: ${MOBILE_BREAKPOINT - 1}px)`;
- return useSyncExternalStore(
- (callback) => {
- const mql = window.matchMedia(query);
- mql.addEventListener('change', callback);
- return () => mql.removeEventListener('change', callback);
- },
- () => window.matchMedia(query).matches,
- () => false,
- );
- };
|