import { NativeModules, StatusBarIOS, Platform } from "react-native"; const { StatusBarManager } = NativeModules; function useStatusBarHeight() { // Initialize w/ currentHeight b/c StatusBar.currentHeight works properly on android on Android const [height, setHeigt] = useState(StatusBar.currentHeight || 0); useEffect(() => { if (Platform.OS !== "ios") return; StatusBarManager.getHeight((height: number) => setHeigt(height)); const listener = StatusBarIOS.addListener( "statusBarFrameWillChange", statusBarData => setHeigt(statusBarData?.frame?.height) ); return () => listener.remove(); }, [StatusBar.currentHeight]); return height; }