Update dependencies and fix what the new lint rules caught

Every package moves to its newest in-major version, plus React 19.3, @convex-dev/auth 0.0.96 and next-plausible 4. The backend declares @auth/core and generates sign-in codes without oslo, which @convex-dev/auth no longer pulls in. The UseSend patch now actually removes the crypto import Convex refuses to bundle. The stricter react-hooks and typescript-eslint rules flagged the carousel, chart, image crop and mobile hook, which now pass.
This commit is contained in:
Gabriel Brown committed 2026-10-01 14:54:53 -04:00
1 parent 9facbcd4da
commit 818b41fb21
18 files changed
+647 -1250

No files matched your search

+14 -16
View File
@@ -1,21 +1,19 @@
import * as React from 'react';
const MOBILE_BREAKPOINT = 768;
const MOBILE_QUERY = `(max-width: ${MOBILE_BREAKPOINT - 1}px)`;
export const 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;
const subscribe = (onChange: () => void) => {
const mql = window.matchMedia(MOBILE_QUERY);
mql.addEventListener('change', onChange);
return () => mql.removeEventListener('change', onChange);
};
// True below the mobile breakpoint. Server renders and hydration assume
// desktop, then the browser's media query takes over.
export const useIsMobile = () =>
React.useSyncExternalStore(
subscribe,
() => window.matchMedia(MOBILE_QUERY).matches,
() => false,
);