Skip to content

Commit 94e2801

Browse files
Add types for react-native-immersive (DefinitelyTyped#73463)
Co-authored-by: kurisani-web <[email protected]>
1 parent 8b3499b commit 94e2801

File tree

5 files changed

+74
-0
lines changed

5 files changed

+74
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
*
2+
!**/*.d.ts
3+
!**/*.d.cts
4+
!**/*.d.mts
5+
!**/*.d.*.ts
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/** Listener invoked when immersive state changes and needs restoring. */
2+
export type ImmersiveListener = () => void;
3+
4+
export interface ImmersiveStatic {
5+
/** Enable immersive (full‑screen) mode. */
6+
on(): void;
7+
8+
/** Disable immersive mode. */
9+
off(): void;
10+
11+
/** Explicitly set immersive mode on/off. */
12+
setImmersive(enabled: boolean): void;
13+
14+
/**
15+
* Subscribe to immersive state changes (e.g., after Keyboard/Alert/Modal).
16+
* Call `Immersive.on()` inside your listener to restore state.
17+
*/
18+
addImmersiveListener(listener: ImmersiveListener): void;
19+
20+
/** Unsubscribe a previously added listener. */
21+
removeImmersiveListener(listener: ImmersiveListener): void;
22+
}
23+
24+
/**
25+
* Named export used by this package:
26+
* import { Immersive } from 'react-native-immersive';
27+
*/
28+
export const Immersive: ImmersiveStatic;
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "@types/react-native-immersive",
3+
"private": true,
4+
"version": "1.0.9999",
5+
"devDependencies": {
6+
"@types/react-native-immersive": "workspace:."
7+
},
8+
"projects": [
9+
"https://github.com/d0whc3r/react-native-immersive"
10+
],
11+
"owners": [
12+
{
13+
"name": "Kurisani",
14+
"githubUsername": "CheFu-code"
15+
}
16+
]
17+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Immersive } from 'react-native-immersive';
2+
3+
Immersive.on();
4+
Immersive.off();
5+
Immersive.setImmersive(true);
6+
7+
const restore = () => {
8+
Immersive.on();
9+
};
10+
11+
Immersive.addImmersiveListener(restore);
12+
Immersive.removeImmersiveListener(restore);
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"compilerOptions": {
3+
"module": "commonjs",
4+
"target": "es6",
5+
"lib": ["es6"],
6+
"strict": true,
7+
"noEmit": true,
8+
"types": [],
9+
"forceConsistentCasingInFileNames": true
10+
},
11+
"files": ["index.d.ts"]
12+
}

0 commit comments

Comments
 (0)