Skip to content
This repository was archived by the owner on Jun 29, 2025. It is now read-only.

Commit 9c734ec

Browse files
committed
fix: prevent zoom on input field click on mobile
1 parent e663da4 commit 9c734ec

File tree

1 file changed

+56
-47
lines changed

1 file changed

+56
-47
lines changed

frontend/src/pages/_app.tsx

Lines changed: 56 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { getCookie, setCookie } from "cookies-next";
1212
import { GetServerSidePropsContext } from "next";
1313
import type { AppProps } from "next/app";
1414
import getConfig from "next/config";
15+
import Head from "next/head";
1516
import { useRouter } from "next/router";
1617
import { useEffect, useRef, useState } from "react";
1718
import { IntlProvider } from "react-intl";
@@ -41,7 +42,7 @@ function App({ Component, pageProps }: AppProps) {
4142
const [route, setRoute] = useState<string>(pageProps.route);
4243

4344
const [configVariables, setConfigVariables] = useState<Config[]>(
44-
pageProps.configVariables,
45+
pageProps.configVariables
4546
);
4647

4748
useEffect(() => {
@@ -80,57 +81,65 @@ function App({ Component, pageProps }: AppProps) {
8081
const language = useRef(pageProps.language);
8182

8283
return (
83-
<IntlProvider
84-
messages={i18nUtil.getLocaleByCode(language.current)?.messages}
85-
locale={language.current}
86-
defaultLocale={LOCALES.ENGLISH.code}
87-
>
88-
<MantineProvider
89-
withGlobalStyles
90-
withNormalizeCSS
91-
theme={{ colorScheme, ...globalStyle }}
84+
<>
85+
<Head>
86+
<meta
87+
name="viewport"
88+
content="minimum-scale=1, initial-scale=1, width=device-width, user-scalable=no"
89+
/>
90+
</Head>
91+
<IntlProvider
92+
messages={i18nUtil.getLocaleByCode(language.current)?.messages}
93+
locale={language.current}
94+
defaultLocale={LOCALES.ENGLISH.code}
9295
>
93-
<ColorSchemeProvider
94-
colorScheme={colorScheme}
95-
toggleColorScheme={toggleColorScheme}
96+
<MantineProvider
97+
withGlobalStyles
98+
withNormalizeCSS
99+
theme={{ colorScheme, ...globalStyle }}
96100
>
97-
<GlobalStyle />
98-
<Notifications />
99-
<ModalsProvider>
100-
<ConfigContext.Provider
101-
value={{
102-
configVariables,
103-
refresh: async () => {
104-
setConfigVariables(await configService.list());
105-
},
106-
}}
107-
>
108-
<UserContext.Provider
101+
<ColorSchemeProvider
102+
colorScheme={colorScheme}
103+
toggleColorScheme={toggleColorScheme}
104+
>
105+
<GlobalStyle />
106+
<Notifications />
107+
<ModalsProvider>
108+
<ConfigContext.Provider
109109
value={{
110-
user,
111-
refreshUser: async () => {
112-
const user = await userService.getCurrentUser();
113-
setUser(user);
114-
return user;
110+
configVariables,
111+
refresh: async () => {
112+
setConfigVariables(await configService.list());
115113
},
116114
}}
117115
>
118-
{excludeDefaultLayoutRoutes.includes(route) ? (
119-
<Component {...pageProps} />
120-
) : (
121-
<>
122-
<Header />
123-
<Container>
124-
<Component {...pageProps} />
125-
</Container>
126-
</>
127-
)}
128-
</UserContext.Provider>
129-
</ConfigContext.Provider>
130-
</ModalsProvider>
131-
</ColorSchemeProvider>
132-
</MantineProvider>
133-
</IntlProvider>
116+
<UserContext.Provider
117+
value={{
118+
user,
119+
refreshUser: async () => {
120+
const user = await userService.getCurrentUser();
121+
setUser(user);
122+
return user;
123+
},
124+
}}
125+
>
126+
{excludeDefaultLayoutRoutes.includes(route) ? (
127+
<Component {...pageProps} />
128+
) : (
129+
<>
130+
<Header />
131+
<Container>
132+
<Component {...pageProps} />
133+
</Container>
134+
</>
135+
)}
136+
</UserContext.Provider>
137+
</ConfigContext.Provider>
138+
</ModalsProvider>
139+
</ColorSchemeProvider>
140+
</MantineProvider>
141+
</IntlProvider>
142+
</>
134143
);
135144
}
136145

@@ -165,7 +174,7 @@ App.getInitialProps = async ({ ctx }: { ctx: GetServerSidePropsContext }) => {
165174
pageProps.route = ctx.req.url;
166175

167176
const requestLanguage = i18nUtil.getLanguageFromAcceptHeader(
168-
ctx.req.headers["accept-language"],
177+
ctx.req.headers["accept-language"]
169178
);
170179

171180
pageProps.language = ctx.req.cookies["language"] ?? requestLanguage;

0 commit comments

Comments
 (0)