@@ -22,6 +22,7 @@ import {
2222import { NativeStackScreenProps } from "@react-navigation/native-stack" ;
2323import { RootStackParamList } from "types" ;
2424import { shareFileFromUrl } from "utils/shareFile" ;
25+ import { useSafeAreaInsets } from "react-native-safe-area-context" ;
2526
2627function LoadingScreen ( ) {
2728 return < ActivityIndicator size = "large" /> ;
@@ -31,6 +32,7 @@ export default function MainScreen({
3132 navigation,
3233} : NativeStackScreenProps < RootStackParamList , "Main" > ) {
3334 const { t } = useTranslation ( ) ;
35+ const insets = useSafeAreaInsets ( ) ;
3436 const { serverUrl, basicAuth } = useAppContext ( ) ;
3537 const webViewRef = useRef ( null ) ;
3638 const [ isConnected , setIsConnected ] = useState ( false ) ;
@@ -152,6 +154,12 @@ export default function MainScreen({
152154 < WebView
153155 basicAuthCredential = { basicAuthCredential }
154156 source = { { uri : serverUrl } }
157+ injectedJavaScript = { `
158+ document.documentElement.style.setProperty("--safe-area-inset-top", "${ insets . top } px");
159+ document.documentElement.style.setProperty("--safe-area-inset-bottom", "${ insets . bottom } px");
160+ document.documentElement.style.setProperty("--safe-area-inset-left", "${ insets . left } px");
161+ document.documentElement.style.setProperty("--safe-area-inset-right", "${ insets . right } px");
162+ ` }
155163 style = { { flex : 1 } }
156164 key = { webViewKey }
157165 bounces = { false }
0 commit comments