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 +8 -6
- package/lib/module/index.js +5 -5
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/NativeNavigationMode.d.ts +1 -1
- package/lib/typescript/src/NativeNavigationMode.d.ts.map +1 -1
- package/package.json +18 -2
- package/src/NativeNavigationMode.ts +1 -1
- package/src/index.tsx +5 -5
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`
|
|
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) |
|
package/lib/module/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
|
-
import
|
|
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] =
|
|
60
|
-
const [loading, setLoading] =
|
|
61
|
-
const [error, setError] =
|
|
62
|
-
|
|
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 {
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","
|
|
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
|
|
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,
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
64
|
-
const [loading, setLoading] =
|
|
65
|
-
const [error, setError] =
|
|
63
|
+
useState<NavigationModeInfo | null>(null);
|
|
64
|
+
const [loading, setLoading] = useState(true);
|
|
65
|
+
const [error, setError] = useState<Error | null>(null);
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
useEffect(() => {
|
|
68
68
|
let mounted = true;
|
|
69
69
|
|
|
70
70
|
async function fetchNavigationMode() {
|