Files
readest/apps/readest-app/src/pages/_app.tsx
T
Huang Xin cc8f917cdd fix(layout): silence viewport meta warning on non-Android browsers (#4097)
`interactive-widget=resizes-content` was set in the SSR viewport
metadata so Android Chrome would shrink the layout viewport when
the on-screen keyboard opens (matching iOS default behavior).
Other browsers — Safari on macOS / iOS, desktop Chrome, Firefox —
log a console warning every page load because they don't recognize
the key.

Move the attachment client-side, gated on a UA sniff for Android,
so the meta tag stays clean for everyone else. The Android-specific
behavior (modals centered above the keyboard) is preserved on the
platform that actually needed it.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 21:16:52 +02:00

44 lines
1.5 KiB
TypeScript

import Head from 'next/head';
import { AppProps } from 'next/app';
import { EnvProvider } from '@/context/EnvContext';
import Providers from '@/components/Providers';
import '../styles/globals.css';
function MyApp({ Component, pageProps }: AppProps) {
return (
<>
<Head>
{/*
* `interactive-widget=resizes-content` is appended client-side
* on Android only (Providers.tsx) so other browsers don't
* warn about the unrecognized key on every page load.
*/}
<meta
name='viewport'
content='minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no, user-scalable=no, viewport-fit=cover'
/>
<meta name='application-name' content='Readest' />
<meta name='apple-mobile-web-app-capable' content='yes' />
<meta name='apple-mobile-web-app-status-bar-style' content='default' />
<meta name='apple-mobile-web-app-title' content='Readest' />
<meta
name='description'
content='Readest is an open-source eBook reader supporting EPUB, PDF, and sync across devices.'
/>
<meta name='format-detection' content='telephone=no' />
<meta name='mobile-web-app-capable' content='yes' />
<meta name='theme-color' content='white' />
<link rel='manifest' href='/manifest.json' />
</Head>
<EnvProvider>
<Providers>
<Component {...pageProps} />
</Providers>
</EnvProvider>
</>
);
}
export default MyApp;