UNPKG

react-native-navigation-mode

Version:

Detect Android navigation mode (3-button, 2-button, or gesture)

25 lines (20 loc) 732 B
import type { TurboModule } from 'react-native'; import { TurboModuleRegistry, Platform } from 'react-native'; export interface NavigationModeInfo { type: '3_button' | '2_button' | 'gesture' | 'unknown'; isGestureNavigation: boolean; interactionMode?: number; navigationBarHeight: number; } export interface Spec extends TurboModule { getNavigationMode(): Promise<NavigationModeInfo>; isGestureNavigation(): Promise<boolean>; getNavigationBarHeight(): Promise<number>; } // Only get the native module on Android // On iOS, we'll handle everything in JavaScript const NativeModule = Platform.OS === 'android' ? TurboModuleRegistry.getEnforcing<Spec>('NavigationMode') : null; export default NativeModule;