react-native-navigation-mode 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -204,15 +204,17 @@ console.log('Navigation bar height:', height); // number (dp)
204
204
 
205
205
  #### `NavigationModeInfo`
206
206
 
207
- | Property | Type | Description |
208
- | ------------------- | ----------------------------------------------------------- | --------------------------------------------------------- |
209
- | type | `'3_button'` or `'2_button'` or `'gesture'` or `'unknown'` | 4 possible Android navigation modes that can be detected. |
210
- | isGestureNavigation | `boolean` | Whether gesture navigation is active. |
211
- | interactionMode | `number` or `undefined` | See [Interaction Mode Values](#interaction-mode-values) |
212
- | navigationBarHeight | `number` or `undefined` | Navigation bar height in density-independent pixels (dp). |
207
+ | Property | Type | Description |
208
+ | ------------------- | ----------------------------------------------------------- | ------------------------------------------------------------ |
209
+ | type | `'3_button'` or `'2_button'` or `'gesture'` or `'unknown'` | 4 possible Android navigation modes that can be detected |
210
+ | isGestureNavigation | `boolean` | Whether gesture navigation is active |
211
+ | interactionMode | `number` or `undefined` | See [Interaction Mode Values](#interaction-mode-values) |
212
+ | navigationBarHeight | `number` | Navigation bar height in density-independent pixels (dp). 0 for iOS |
213
213
 
214
214
  ### Interaction Mode Values
215
215
 
216
+ Only available for Android 10 (API 29) or newer.
217
+
216
218
  | Android Mode | Type | Description |
217
219
  | ------------ | ---------- | --------------------------------------------------- |
218
220
  | 0 | `3_button` | Traditional Android navigation (Back, Home, Recent) |
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { Platform } from 'react-native';
4
- import React from 'react';
4
+ import { useEffect, useState } from 'react';
5
5
  import NavigationModeModule from "./NativeNavigationMode.js";
6
6
  /**
7
7
  * Get detailed navigation mode information
@@ -56,10 +56,10 @@ export function getNavigationBarHeight() {
56
56
  * Hook for React components to get navigation mode
57
57
  */
58
58
  export function useNavigationMode() {
59
- const [navigationMode, setNavigationMode] = React.useState(null);
60
- const [loading, setLoading] = React.useState(true);
61
- const [error, setError] = React.useState(null);
62
- React.useEffect(() => {
59
+ const [navigationMode, setNavigationMode] = useState(null);
60
+ const [loading, setLoading] = useState(true);
61
+ const [error, setError] = useState(null);
62
+ useEffect(() => {
63
63
  let mounted = true;
64
64
  async function fetchNavigationMode() {
65
65
  try {
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","React","NavigationModeModule","getNavigationMode","OS","Promise","resolve","type","isGestureNavigation","navigationBarHeight","getNavigationBarHeight","useNavigationMode","navigationMode","setNavigationMode","useState","loading","setLoading","error","setError","useEffect","mounted","fetchNavigationMode","mode","err","Error"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,oBAAoB,MAEpB,2BAAwB;AAI/B;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAgC;EAC/D;EACA,IAAIH,QAAQ,CAACI,EAAE,KAAK,KAAK,IAAIF,oBAAoB,KAAK,IAAI,EAAE;IAC1D;IACA,OAAOG,OAAO,CAACC,OAAO,CAAC;MACrBC,IAAI,EAAE,SAAS;MACfC,mBAAmB,EAAE,IAAI;MACzBC,mBAAmB,EAAE,CAAC,CAAE;IAC1B,CAAC,CAAC;EACJ;;EAEA;EACA,OAAOP,oBAAoB,CAACC,iBAAiB,CAAC,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASK,mBAAmBA,CAAA,EAAqB;EACtD;EACA,IAAIR,QAAQ,CAACI,EAAE,KAAK,KAAK,IAAIF,oBAAoB,KAAK,IAAI,EAAE;IAC1D;IACA,OAAOG,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAC9B;;EAEA;EACA,OAAOJ,oBAAoB,CAACM,mBAAmB,CAAC,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASE,sBAAsBA,CAAA,EAAoB;EACxD;EACA,IAAIV,QAAQ,CAACI,EAAE,KAAK,KAAK,IAAIF,oBAAoB,KAAK,IAAI,EAAE;IAC1D;IACA,OAAOG,OAAO,CAACC,OAAO,CAAC,CAAC,CAAC;EAC3B;;EAEA;EACA,OAAOJ,oBAAoB,CAACQ,sBAAsB,CAAC,CAAC;AACtD;;AAEA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAG;EAClC,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GACvCZ,KAAK,CAACa,QAAQ,CAA4B,IAAI,CAAC;EACjD,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGf,KAAK,CAACa,QAAQ,CAAC,IAAI,CAAC;EAClD,MAAM,CAACG,KAAK,EAAEC,QAAQ,CAAC,GAAGjB,KAAK,CAACa,QAAQ,CAAe,IAAI,CAAC;EAE5Db,KAAK,CAACkB,SAAS,CAAC,MAAM;IACpB,IAAIC,OAAO,GAAG,IAAI;IAElB,eAAeC,mBAAmBA,CAAA,EAAG;MACnC,IAAI;QACF,MAAMC,IAAI,GAAG,MAAMnB,iBAAiB,CAAC,CAAC;QACtC,IAAIiB,OAAO,EAAE;UACXP,iBAAiB,CAACS,IAAI,CAAC;UACvBJ,QAAQ,CAAC,IAAI,CAAC;QAChB;MACF,CAAC,CAAC,OAAOK,GAAG,EAAE;QACZ,IAAIH,OAAO,EAAE;UACXF,QAAQ,CAACK,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnE;MACF,CAAC,SAAS;QACR,IAAIJ,OAAO,EAAE;UACXJ,UAAU,CAAC,KAAK,CAAC;QACnB;MACF;IACF;IAEAK,mBAAmB,CAAC,CAAC;IAErB,OAAO,MAAM;MACXD,OAAO,GAAG,KAAK;IACjB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAER,cAAc;IAAEG,OAAO;IAAEE;EAAM,CAAC;AAC3C;AAEA,eAAe;EACbd,iBAAiB;EACjBK,mBAAmB;EACnBE,sBAAsB;EACtBC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Platform","useEffect","useState","NavigationModeModule","getNavigationMode","OS","Promise","resolve","type","isGestureNavigation","navigationBarHeight","getNavigationBarHeight","useNavigationMode","navigationMode","setNavigationMode","loading","setLoading","error","setError","mounted","fetchNavigationMode","mode","err","Error"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,OAAOC,oBAAoB,MAEpB,2BAAwB;AAI/B;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAgC;EAC/D;EACA,IAAIJ,QAAQ,CAACK,EAAE,KAAK,KAAK,IAAIF,oBAAoB,KAAK,IAAI,EAAE;IAC1D;IACA,OAAOG,OAAO,CAACC,OAAO,CAAC;MACrBC,IAAI,EAAE,SAAS;MACfC,mBAAmB,EAAE,IAAI;MACzBC,mBAAmB,EAAE,CAAC,CAAE;IAC1B,CAAC,CAAC;EACJ;;EAEA;EACA,OAAOP,oBAAoB,CAACC,iBAAiB,CAAC,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASK,mBAAmBA,CAAA,EAAqB;EACtD;EACA,IAAIT,QAAQ,CAACK,EAAE,KAAK,KAAK,IAAIF,oBAAoB,KAAK,IAAI,EAAE;IAC1D;IACA,OAAOG,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAC9B;;EAEA;EACA,OAAOJ,oBAAoB,CAACM,mBAAmB,CAAC,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASE,sBAAsBA,CAAA,EAAoB;EACxD;EACA,IAAIX,QAAQ,CAACK,EAAE,KAAK,KAAK,IAAIF,oBAAoB,KAAK,IAAI,EAAE;IAC1D;IACA,OAAOG,OAAO,CAACC,OAAO,CAAC,CAAC,CAAC;EAC3B;;EAEA;EACA,OAAOJ,oBAAoB,CAACQ,sBAAsB,CAAC,CAAC;AACtD;;AAEA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAG;EAClC,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GACvCZ,QAAQ,CAA4B,IAAI,CAAC;EAC3C,MAAM,CAACa,OAAO,EAAEC,UAAU,CAAC,GAAGd,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAACe,KAAK,EAAEC,QAAQ,CAAC,GAAGhB,QAAQ,CAAe,IAAI,CAAC;EAEtDD,SAAS,CAAC,MAAM;IACd,IAAIkB,OAAO,GAAG,IAAI;IAElB,eAAeC,mBAAmBA,CAAA,EAAG;MACnC,IAAI;QACF,MAAMC,IAAI,GAAG,MAAMjB,iBAAiB,CAAC,CAAC;QACtC,IAAIe,OAAO,EAAE;UACXL,iBAAiB,CAACO,IAAI,CAAC;UACvBH,QAAQ,CAAC,IAAI,CAAC;QAChB;MACF,CAAC,CAAC,OAAOI,GAAG,EAAE;QACZ,IAAIH,OAAO,EAAE;UACXD,QAAQ,CAACI,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnE;MACF,CAAC,SAAS;QACR,IAAIJ,OAAO,EAAE;UACXH,UAAU,CAAC,KAAK,CAAC;QACnB;MACF;IACF;IAEAI,mBAAmB,CAAC,CAAC;IAErB,OAAO,MAAM;MACXD,OAAO,GAAG,KAAK;IACjB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEN,cAAc;IAAEE,OAAO;IAAEE;EAAM,CAAC;AAC3C;AAEA,eAAe;EACbb,iBAAiB;EACjBK,mBAAmB;EACnBE,sBAAsB;EACtBC;AACF,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@ export interface NavigationModeInfo {
3
3
  type: '3_button' | '2_button' | 'gesture' | 'unknown';
4
4
  isGestureNavigation: boolean;
5
5
  interactionMode?: number;
6
- navigationBarHeight?: number;
6
+ navigationBarHeight: number;
7
7
  }
8
8
  export interface Spec extends TurboModule {
9
9
  getNavigationMode(): Promise<NavigationModeInfo>;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeNavigationMode.d.ts","sourceRoot":"","sources":["../../../src/NativeNavigationMode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACtD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjD,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAID,QAAA,MAAM,YAAY,aAGR,CAAC;AAEX,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"NativeNavigationMode.d.ts","sourceRoot":"","sources":["../../../src/NativeNavigationMode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACtD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjD,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAID,QAAA,MAAM,YAAY,aAGR,CAAC;AAEX,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,10 @@
1
1
  {
2
2
  "name": "react-native-navigation-mode",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "Detect Android navigation mode (3-button, 2-button, or gesture)",
5
5
  "main": "./lib/module/index.js",
6
+ "react-native": "./lib/module/index.js",
7
+ "source": "src/index.tsx",
6
8
  "types": "./lib/typescript/src/index.d.ts",
7
9
  "files": [
8
10
  "src",
@@ -176,5 +178,19 @@
176
178
  "languages": "kotlin-objc",
177
179
  "type": "turbo-module",
178
180
  "version": "0.50.3"
179
- }
181
+ },
182
+ "funding": [
183
+ {
184
+ "type": "individual",
185
+ "url": "https://www.paypal.com/paypalme/jairajjangle001/usd"
186
+ },
187
+ {
188
+ "type": "individual",
189
+ "url": "https://liberapay.com/FutureJJ/donate"
190
+ },
191
+ {
192
+ "type": "individual",
193
+ "url": "https://ko-fi.com/futurejj"
194
+ }
195
+ ]
180
196
  }
@@ -5,7 +5,7 @@ export interface NavigationModeInfo {
5
5
  type: '3_button' | '2_button' | 'gesture' | 'unknown';
6
6
  isGestureNavigation: boolean;
7
7
  interactionMode?: number;
8
- navigationBarHeight?: number;
8
+ navigationBarHeight: number;
9
9
  }
10
10
 
11
11
  export interface Spec extends TurboModule {
package/src/index.tsx CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Platform } from 'react-native';
2
- import React from 'react';
2
+ import { useEffect, useState } from 'react';
3
3
  import NavigationModeModule, {
4
4
  type NavigationModeInfo,
5
5
  } from './NativeNavigationMode';
@@ -60,11 +60,11 @@ export function getNavigationBarHeight(): Promise<number> {
60
60
  */
61
61
  export function useNavigationMode() {
62
62
  const [navigationMode, setNavigationMode] =
63
- React.useState<NavigationModeInfo | null>(null);
64
- const [loading, setLoading] = React.useState(true);
65
- const [error, setError] = React.useState<Error | null>(null);
63
+ useState<NavigationModeInfo | null>(null);
64
+ const [loading, setLoading] = useState(true);
65
+ const [error, setError] = useState<Error | null>(null);
66
66
 
67
- React.useEffect(() => {
67
+ useEffect(() => {
68
68
  let mounted = true;
69
69
 
70
70
  async function fetchNavigationMode() {