react-native-keyboard-controller 1.17.4 → 1.18.0

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.
Files changed (185) hide show
  1. package/README.md +4 -1
  2. package/android/src/base/java/com/reactnativekeyboardcontroller/KeyboardControllerPackage.kt +6 -5
  3. package/android/src/fabric/java/com/reactnativekeyboardcontroller/KeyboardBackgroundViewManager.kt +19 -0
  4. package/android/src/fabric/java/com/reactnativekeyboardcontroller/KeyboardControllerModule.kt +4 -0
  5. package/android/src/fabric/java/com/reactnativekeyboardcontroller/KeyboardControllerViewManager.kt +3 -5
  6. package/android/src/fabric/java/com/reactnativekeyboardcontroller/KeyboardGestureAreaViewManager.kt +3 -5
  7. package/android/src/fabric/java/com/reactnativekeyboardcontroller/OverKeyboardViewManager.kt +3 -5
  8. package/android/src/fabric/java/com/reactnativekeyboardcontroller/StatusBarManagerCompatModule.kt +3 -1
  9. package/android/src/main/java/com/reactnativekeyboardcontroller/extensions/Context.kt +20 -0
  10. package/android/src/main/java/com/reactnativekeyboardcontroller/extensions/ThemedReactContext.kt +2 -12
  11. package/android/src/main/java/com/reactnativekeyboardcontroller/managers/KeyboardBackgroundViewManagerImpl.kt +13 -0
  12. package/android/src/main/java/com/reactnativekeyboardcontroller/managers/KeyboardControllerViewManagerImpl.kt +2 -6
  13. package/android/src/main/java/com/reactnativekeyboardcontroller/managers/KeyboardGestureAreaViewManagerImpl.kt +1 -5
  14. package/android/src/main/java/com/reactnativekeyboardcontroller/managers/OverKeyboardViewManagerImpl.kt +1 -5
  15. package/android/src/main/java/com/reactnativekeyboardcontroller/modules/KeyboardControllerModuleImpl.kt +4 -0
  16. package/android/src/main/java/com/reactnativekeyboardcontroller/modules/{StatusBarManagerCompatModuleImpl.kt → statusbar/StatusBarManagerCompatModuleImpl.kt} +31 -5
  17. package/android/src/main/java/com/reactnativekeyboardcontroller/modules/statusbar/StatusBarModuleProxy.kt +86 -0
  18. package/android/src/main/java/com/reactnativekeyboardcontroller/views/EdgeToEdgeReactViewGroup.kt +9 -11
  19. package/android/src/main/java/com/reactnativekeyboardcontroller/views/background/KeyboardBackgroundViewGroup.kt +35 -0
  20. package/android/src/main/java/com/reactnativekeyboardcontroller/views/background/Skins.kt +91 -0
  21. package/android/src/main/jni/reactnativekeyboardcontroller.h +1 -0
  22. package/android/src/main/res/values/attrs.xml +7 -0
  23. package/android/src/main/res/values/colors.xml +35 -0
  24. package/android/src/main/res/values-v29/colors.xml +5 -0
  25. package/android/src/main/res/values-v30/colors.xml +17 -0
  26. package/android/src/main/res/values-v33/colors.xml +16 -0
  27. package/android/src/main/res/values-v34/colors.xml +18 -0
  28. package/android/src/main/res/values-v35/colors.xml +10 -0
  29. package/android/src/paper/java/com/reactnativekeyboardcontroller/KeyboardBackgroundViewManager.kt +15 -0
  30. package/android/src/paper/java/com/reactnativekeyboardcontroller/KeyboardControllerModule.kt +5 -0
  31. package/android/src/paper/java/com/reactnativekeyboardcontroller/KeyboardControllerViewManager.kt +2 -5
  32. package/android/src/paper/java/com/reactnativekeyboardcontroller/KeyboardGestureAreaViewManager.kt +2 -5
  33. package/android/src/paper/java/com/reactnativekeyboardcontroller/OverKeyboardViewManager.kt +2 -5
  34. package/android/src/paper/java/com/reactnativekeyboardcontroller/StatusBarManagerCompatModule.kt +3 -1
  35. package/android/src/turbo/java/com/reactnativekeyboardcontroller/KeyboardControllerPackage.kt +5 -5
  36. package/common/cpp/react/renderer/components/reactnativekeyboardcontroller/RNKCKeyboardBackgroundViewComponentDescriptor.h +27 -0
  37. package/common/cpp/react/renderer/components/reactnativekeyboardcontroller/RNKCKeyboardBackgroundViewShadowNode.cpp +14 -0
  38. package/common/cpp/react/renderer/components/reactnativekeyboardcontroller/RNKCKeyboardBackgroundViewShadowNode.h +30 -0
  39. package/common/cpp/react/renderer/components/reactnativekeyboardcontroller/RNKCKeyboardBackgroundViewState.h +28 -0
  40. package/common/cpp/react/renderer/components/reactnativekeyboardcontroller/RNKCKeyboardExtenderComponentDescriptor.h +27 -0
  41. package/common/cpp/react/renderer/components/reactnativekeyboardcontroller/RNKCKeyboardExtenderShadowNode.cpp +14 -0
  42. package/common/cpp/react/renderer/components/reactnativekeyboardcontroller/RNKCKeyboardExtenderShadowNode.h +30 -0
  43. package/common/cpp/react/renderer/components/reactnativekeyboardcontroller/RNKCKeyboardExtenderState.h +28 -0
  44. package/ios/KeyboardControllerModule.mm +9 -0
  45. package/ios/delegates/KCTextInputCompositeDelegate.swift +5 -5
  46. package/ios/events/KeyboardEventEmitterPayload.swift +1 -1
  47. package/ios/extensions/String.swift +12 -0
  48. package/ios/extensions/UIResponder.swift +27 -0
  49. package/ios/interactive/KeyboardAreaExtender.swift +5 -5
  50. package/ios/observers/FocusedInputObserver.swift +14 -5
  51. package/ios/observers/KeyboardMovementObserver.swift +24 -9
  52. package/ios/protocols/TextInput.swift +22 -0
  53. package/ios/swizzling/UIResponderSwizzle.swift +3 -0
  54. package/ios/traversal/KeyboardView.swift +6 -3
  55. package/ios/views/KeyboardBackgroundViewManager.h +29 -0
  56. package/ios/views/KeyboardBackgroundViewManager.mm +168 -0
  57. package/ios/views/KeyboardExtenderContainerView.swift +59 -0
  58. package/ios/views/KeyboardExtenderManager.h +29 -0
  59. package/ios/views/KeyboardExtenderManager.mm +287 -0
  60. package/jest/index.js +6 -1
  61. package/lib/commonjs/animated.js +7 -10
  62. package/lib/commonjs/animated.js.map +1 -1
  63. package/lib/commonjs/bindings.js +15 -1
  64. package/lib/commonjs/bindings.js.map +1 -1
  65. package/lib/commonjs/bindings.native.js +5 -1
  66. package/lib/commonjs/bindings.native.js.map +1 -1
  67. package/lib/commonjs/components/KeyboardAwareScrollView/index.js +49 -29
  68. package/lib/commonjs/components/KeyboardAwareScrollView/index.js.map +1 -1
  69. package/lib/commonjs/components/KeyboardToolbar/Arrow.js +2 -3
  70. package/lib/commonjs/components/KeyboardToolbar/Arrow.js.map +1 -1
  71. package/lib/commonjs/components/KeyboardToolbar/Button.js +2 -3
  72. package/lib/commonjs/components/KeyboardToolbar/Button.js.map +1 -1
  73. package/lib/commonjs/components/KeyboardToolbar/constants.js +17 -0
  74. package/lib/commonjs/components/KeyboardToolbar/constants.js.map +1 -0
  75. package/lib/commonjs/components/KeyboardToolbar/index.js +25 -22
  76. package/lib/commonjs/components/KeyboardToolbar/index.js.map +1 -1
  77. package/lib/commonjs/hooks/useKeyboardState/index.js +18 -8
  78. package/lib/commonjs/hooks/useKeyboardState/index.js.map +1 -1
  79. package/lib/commonjs/index.js +8 -1
  80. package/lib/commonjs/index.js.map +1 -1
  81. package/lib/commonjs/module.js +2 -1
  82. package/lib/commonjs/module.js.map +1 -1
  83. package/lib/commonjs/specs/KeyboardBackgroundViewNativeComponent.js +12 -0
  84. package/lib/commonjs/specs/KeyboardBackgroundViewNativeComponent.js.map +1 -0
  85. package/lib/commonjs/specs/KeyboardExtenderNativeComponent.js +13 -0
  86. package/lib/commonjs/specs/KeyboardExtenderNativeComponent.js.map +1 -0
  87. package/lib/commonjs/specs/NativeKeyboardController.js.map +1 -1
  88. package/lib/commonjs/types/module.js.map +1 -1
  89. package/lib/commonjs/types/views.js.map +1 -1
  90. package/lib/commonjs/views/KeyboardExtender/index.ios.js +43 -0
  91. package/lib/commonjs/views/KeyboardExtender/index.ios.js.map +1 -0
  92. package/lib/commonjs/views/KeyboardExtender/index.js +46 -0
  93. package/lib/commonjs/views/KeyboardExtender/index.js.map +1 -0
  94. package/lib/commonjs/views/index.js +7 -0
  95. package/lib/commonjs/views/index.js.map +1 -1
  96. package/lib/module/animated.js +8 -11
  97. package/lib/module/animated.js.map +1 -1
  98. package/lib/module/bindings.js +14 -0
  99. package/lib/module/bindings.js.map +1 -1
  100. package/lib/module/bindings.native.js +4 -0
  101. package/lib/module/bindings.native.js.map +1 -1
  102. package/lib/module/components/KeyboardAwareScrollView/index.js +50 -30
  103. package/lib/module/components/KeyboardAwareScrollView/index.js.map +1 -1
  104. package/lib/module/components/KeyboardToolbar/Arrow.js +2 -2
  105. package/lib/module/components/KeyboardToolbar/Arrow.js.map +1 -1
  106. package/lib/module/components/KeyboardToolbar/Button.js +2 -2
  107. package/lib/module/components/KeyboardToolbar/Button.js.map +1 -1
  108. package/lib/module/components/KeyboardToolbar/constants.js +11 -0
  109. package/lib/module/components/KeyboardToolbar/constants.js.map +1 -0
  110. package/lib/module/components/KeyboardToolbar/index.js +17 -14
  111. package/lib/module/components/KeyboardToolbar/index.js.map +1 -1
  112. package/lib/module/hooks/useKeyboardState/index.js +18 -6
  113. package/lib/module/hooks/useKeyboardState/index.js.map +1 -1
  114. package/lib/module/index.js +1 -1
  115. package/lib/module/index.js.map +1 -1
  116. package/lib/module/module.js +2 -1
  117. package/lib/module/module.js.map +1 -1
  118. package/lib/module/specs/KeyboardBackgroundViewNativeComponent.js +5 -0
  119. package/lib/module/specs/KeyboardBackgroundViewNativeComponent.js.map +1 -0
  120. package/lib/module/specs/KeyboardExtenderNativeComponent.js +6 -0
  121. package/lib/module/specs/KeyboardExtenderNativeComponent.js.map +1 -0
  122. package/lib/module/specs/NativeKeyboardController.js.map +1 -1
  123. package/lib/module/types/module.js.map +1 -1
  124. package/lib/module/types/views.js.map +1 -1
  125. package/lib/module/views/KeyboardExtender/index.ios.js +36 -0
  126. package/lib/module/views/KeyboardExtender/index.ios.js.map +1 -0
  127. package/lib/module/views/KeyboardExtender/index.js +39 -0
  128. package/lib/module/views/KeyboardExtender/index.js.map +1 -0
  129. package/lib/module/views/index.js +1 -0
  130. package/lib/module/views/index.js.map +1 -1
  131. package/lib/typescript/animated.d.ts +7 -0
  132. package/lib/typescript/bindings.d.ts +14 -1
  133. package/lib/typescript/bindings.native.d.ts +3 -1
  134. package/lib/typescript/components/KeyboardAwareScrollView/index.d.ts +2 -2
  135. package/lib/typescript/components/KeyboardToolbar/constants.d.ts +10 -0
  136. package/lib/typescript/hooks/useKeyboardState/index.d.ts +8 -2
  137. package/lib/typescript/index.d.ts +1 -1
  138. package/lib/typescript/specs/KeyboardBackgroundViewNativeComponent.d.ts +6 -0
  139. package/lib/typescript/specs/KeyboardExtenderNativeComponent.d.ts +7 -0
  140. package/lib/typescript/specs/NativeKeyboardController.d.ts +1 -0
  141. package/lib/typescript/types/module.d.ts +15 -3
  142. package/lib/typescript/types/views.d.ts +5 -0
  143. package/lib/typescript/views/KeyboardExtender/index.d.ts +19 -0
  144. package/lib/typescript/views/KeyboardExtender/index.ios.d.ts +19 -0
  145. package/lib/typescript/views/index.d.ts +1 -0
  146. package/package.json +7 -3
  147. package/react-native.config.js +1 -0
  148. package/src/animated.tsx +14 -9
  149. package/src/bindings.native.ts +8 -0
  150. package/src/bindings.ts +18 -0
  151. package/src/components/KeyboardAwareScrollView/index.tsx +72 -47
  152. package/src/components/KeyboardToolbar/Arrow.tsx +2 -2
  153. package/src/components/KeyboardToolbar/Button.tsx +2 -2
  154. package/src/components/KeyboardToolbar/constants.ts +15 -0
  155. package/src/components/KeyboardToolbar/index.tsx +45 -17
  156. package/src/hooks/useKeyboardState/index.ts +25 -6
  157. package/src/index.ts +1 -1
  158. package/src/module.ts +2 -1
  159. package/src/specs/KeyboardBackgroundViewNativeComponent.ts +10 -0
  160. package/src/specs/KeyboardExtenderNativeComponent.ts +13 -0
  161. package/src/specs/NativeKeyboardController.ts +1 -0
  162. package/src/types/module.ts +17 -3
  163. package/src/types/views.ts +5 -0
  164. package/src/views/KeyboardExtender/index.ios.tsx +35 -0
  165. package/src/views/KeyboardExtender/index.tsx +42 -0
  166. package/src/views/index.ts +1 -0
  167. package/ios/extensions/UIKeyboardAppearance.swift +0 -21
  168. package/lib/commonjs/components/hooks/useColorScheme.js +0 -10
  169. package/lib/commonjs/components/hooks/useColorScheme.js.map +0 -1
  170. package/lib/commonjs/monkey-patch.android.js +0 -53
  171. package/lib/commonjs/monkey-patch.android.js.map +0 -1
  172. package/lib/commonjs/monkey-patch.js +0 -11
  173. package/lib/commonjs/monkey-patch.js.map +0 -1
  174. package/lib/module/components/hooks/useColorScheme.js +0 -4
  175. package/lib/module/components/hooks/useColorScheme.js.map +0 -1
  176. package/lib/module/monkey-patch.android.js +0 -42
  177. package/lib/module/monkey-patch.android.js.map +0 -1
  178. package/lib/module/monkey-patch.js +0 -5
  179. package/lib/module/monkey-patch.js.map +0 -1
  180. package/lib/typescript/components/hooks/useColorScheme.d.ts +0 -2
  181. package/lib/typescript/monkey-patch.android.d.ts +0 -2
  182. package/lib/typescript/monkey-patch.d.ts +0 -2
  183. package/src/components/hooks/useColorScheme.ts +0 -5
  184. package/src/monkey-patch.android.ts +0 -41
  185. package/src/monkey-patch.ts +0 -5
@@ -0,0 +1,10 @@
1
+ import codegenNativeComponent from "react-native/Libraries/Utilities/codegenNativeComponent";
2
+
3
+ import type { HostComponent } from "react-native";
4
+ import type { ViewProps } from "react-native/Libraries/Components/View/ViewPropTypes";
5
+
6
+ export interface NativeProps extends ViewProps {}
7
+
8
+ export default codegenNativeComponent<NativeProps>("KeyboardBackgroundView", {
9
+ interfaceOnly: true,
10
+ }) as HostComponent<NativeProps>;
@@ -0,0 +1,13 @@
1
+ import codegenNativeComponent from "react-native/Libraries/Utilities/codegenNativeComponent";
2
+
3
+ import type { HostComponent } from "react-native";
4
+ import type { ViewProps } from "react-native/Libraries/Components/View/ViewPropTypes";
5
+
6
+ export interface NativeProps extends ViewProps {
7
+ enabled?: boolean;
8
+ }
9
+
10
+ export default codegenNativeComponent<NativeProps>("KeyboardExtender", {
11
+ interfaceOnly: true,
12
+ excludedPlatforms: ["android"],
13
+ }) as HostComponent<NativeProps>;
@@ -8,6 +8,7 @@ export interface Spec extends TurboModule {
8
8
  // methods
9
9
  setInputMode(mode: number): void;
10
10
  setDefaultMode(): void;
11
+ preload(): void;
11
12
  dismiss(keepFocus: boolean): void;
12
13
  setFocusTo(direction: string): void;
13
14
 
@@ -17,8 +17,8 @@ export type KeyboardEventData = {
17
17
  target: number;
18
18
  /** `keyboardType` property from focused `TextInput`. */
19
19
  type: NonNullable<TextInputProps["keyboardType"]>;
20
- /** Keyboard appearance. Can be one of `default`, `dark` or `light`. */
21
- appearance: NonNullable<TextInputProps["keyboardAppearance"]>;
20
+ /** Keyboard appearance. Can be one of `dark` or `light`. */
21
+ appearance: "dark" | "light";
22
22
  };
23
23
  /**
24
24
  * An object that represent current keyboard state.
@@ -59,13 +59,25 @@ export type KeyboardControllerModule = {
59
59
  /**
60
60
  * Sets default `windowSoftInputMode` (the one that declared in `AndroidManifest.xml`).
61
61
  *
62
+ * @platform android
62
63
  * @see {@link https://kirillzyusko.github.io/react-native-keyboard-controller/docs/api/keyboard-controller#setdefaultmode-|docs} page for more details.
63
64
  */
64
65
  setDefaultMode: () => void;
65
66
  /**
66
- * Changes `windowSoftInputMode` on Android. @see AndroidSoftInputModes for all possible values and {@link https://kirillzyusko.github.io/react-native-keyboard-controller/docs/api/keyboard-controller#setinputmode-|docs} page for more details.
67
+ * Changes `windowSoftInputMode` on Android.
68
+ *
69
+ * @platform android
70
+ * @see AndroidSoftInputModes for all possible values and {@link https://kirillzyusko.github.io/react-native-keyboard-controller/docs/api/keyboard-controller#setinputmode-|docs} page for more details.
67
71
  */
68
72
  setInputMode: (mode: number) => void;
73
+ // ios only
74
+ /**
75
+ * A method that preloads the keyboard. It's useful when you want to avoid a delay when the user focuses the first input.
76
+ *
77
+ * @platform ios
78
+ * @see {@link https://kirillzyusko.github.io/react-native-keyboard-controller/docs/api/keyboard-controller#preload-|docs} page for more details.
79
+ */
80
+ preload: () => void;
69
81
  // all platforms
70
82
  /**
71
83
  * Dismisses the active keyboard. Removes a focus by default, but allows to pass `{keepFocus: true}` to keep focus.
@@ -96,6 +108,8 @@ export type KeyboardControllerNativeModule = {
96
108
  // android only
97
109
  setDefaultMode: () => void;
98
110
  setInputMode: (mode: number) => void;
111
+ // ios only
112
+ preload: () => void;
99
113
  // all platforms
100
114
  dismiss: (keepFocus: boolean) => void;
101
115
  setFocusTo: (direction: Direction) => void;
@@ -44,3 +44,8 @@ export type OverKeyboardViewProps = PropsWithChildren<{
44
44
  */
45
45
  visible: boolean;
46
46
  }>;
47
+ export type KeyboardBackgroundViewProps = PropsWithChildren<ViewProps>;
48
+ export type KeyboardExtenderProps = PropsWithChildren<{
49
+ /** Controls whether this `KeyboardExtender` instance should take an effect. Default is `true`. */
50
+ enabled: boolean;
51
+ }>;
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ import { View } from "react-native";
3
+
4
+ import { RCTKeyboardExtender } from "../../bindings";
5
+ import { useWindowDimensions } from "../../hooks";
6
+
7
+ import type { KeyboardExtenderProps } from "../../types";
8
+ import type { PropsWithChildren } from "react";
9
+
10
+ /**
11
+ * A component that embeds its children into the keyboard thus enhancing keyboard functionality.
12
+ *
13
+ * @param props - Component props.
14
+ * @returns A view component that renders inside the keyboard above all system buttons.
15
+ * @example
16
+ * ```tsx
17
+ * <KeyboardExtender>
18
+ * <Button>10$</Button>
19
+ * <Button>20$</Button>
20
+ * <Button>50$</Button>
21
+ * </KeyboardExtender>
22
+ * ```
23
+ */
24
+ const KeyboardExtender = (props: PropsWithChildren<KeyboardExtenderProps>) => {
25
+ const { children, enabled = true } = props;
26
+ const { width } = useWindowDimensions();
27
+
28
+ return (
29
+ <RCTKeyboardExtender enabled={enabled}>
30
+ <View style={{ width }}>{children}</View>
31
+ </RCTKeyboardExtender>
32
+ );
33
+ };
34
+
35
+ export default KeyboardExtender;
@@ -0,0 +1,42 @@
1
+ import React from "react";
2
+ import { Animated } from "react-native";
3
+
4
+ import { KeyboardBackgroundView } from "../../bindings";
5
+ import { KeyboardStickyView } from "../../components";
6
+ import { useKeyboardAnimation } from "../../hooks";
7
+
8
+ import type { KeyboardExtenderProps } from "../../types";
9
+ import type { PropsWithChildren } from "react";
10
+
11
+ const AnimatedKeyboardBackgroundView = Animated.createAnimatedComponent(
12
+ KeyboardBackgroundView,
13
+ );
14
+
15
+ /**
16
+ * A component that embeds its children into the keyboard thus enhancing keyboard functionality.
17
+ *
18
+ * @param props - Component props.
19
+ * @returns A view component that renders inside the keyboard above all system buttons.
20
+ * @example
21
+ * ```tsx
22
+ * <KeyboardExtender>
23
+ * <Button>10$</Button>
24
+ * <Button>20$</Button>
25
+ * <Button>50$</Button>
26
+ * </KeyboardExtender>
27
+ * ```
28
+ */
29
+ const KeyboardExtender = (props: PropsWithChildren<KeyboardExtenderProps>) => {
30
+ const { children, enabled = true } = props;
31
+ const { progress } = useKeyboardAnimation();
32
+
33
+ return (
34
+ <KeyboardStickyView enabled={enabled}>
35
+ <AnimatedKeyboardBackgroundView style={{ opacity: progress }}>
36
+ {children}
37
+ </AnimatedKeyboardBackgroundView>
38
+ </KeyboardStickyView>
39
+ );
40
+ };
41
+
42
+ export default KeyboardExtender;
@@ -1 +1,2 @@
1
1
  export { default as OverKeyboardView } from "./OverKeyboardView";
2
+ export { default as KeyboardExtender } from "./KeyboardExtender";
@@ -1,21 +0,0 @@
1
- //
2
- // UIKeyboardAppearance.swift
3
- // Pods
4
- //
5
- // Created by Kiryl Ziusko on 08/12/2024.
6
- //
7
-
8
- import Foundation
9
- import UIKit
10
-
11
- public extension UIKeyboardAppearance {
12
- var name: String {
13
- switch self {
14
- case .default: return "default"
15
- case .dark: return "dark"
16
- case .light: return "light"
17
- @unknown default:
18
- return "default"
19
- }
20
- }
21
- }
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _reactNative = require("react-native");
8
- const useColorScheme = () => (0, _reactNative.useColorScheme)() || "light";
9
- var _default = exports.default = useColorScheme;
10
- //# sourceMappingURL=useColorScheme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","useColorScheme","useColorSchemeRN","_default","exports","default"],"sources":["useColorScheme.ts"],"sourcesContent":["import { useColorScheme as useColorSchemeRN } from \"react-native\";\n\nconst useColorScheme = () => useColorSchemeRN() || \"light\";\n\nexport default useColorScheme;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,cAAc,GAAGA,CAAA,KAAM,IAAAC,2BAAgB,EAAC,CAAC,IAAI,OAAO;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE5CJ,cAAc","ignoreList":[]}
@@ -1,53 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.revertMonkeyPatch = exports.applyMonkeyPatch = void 0;
7
- var NativeAndroidManager = _interopRequireWildcard(require("react-native/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid"));
8
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
- // @ts-expect-error because there is no corresponding type definition
11
-
12
- const RCTStatusBarManagerCompat =
13
- // eslint-disable-next-line @typescript-eslint/no-var-requires
14
- require("./specs/NativeStatusBarManagerCompat").default;
15
-
16
- // Copy original default manager to keep its original state and methods
17
- const OriginalNativeAndroidManager = {
18
- ...NativeAndroidManager.default
19
- };
20
-
21
- // Create a new object that modifies the necessary methods
22
- // On Android < 11 RN uses legacy API which breaks EdgeToEdge mode in RN, so
23
- // in order to use library on all available platforms we have to monkey patch
24
- // default RN implementation and use modern `WindowInsetsControllerCompat`.
25
- const ModifiedNativeAndroidManager = {
26
- ...NativeAndroidManager.default,
27
- // Spread original properties to keep existing functionality
28
- setColor: (color, animated) => {
29
- RCTStatusBarManagerCompat.setColor(color, animated);
30
- },
31
- setTranslucent: translucent => {
32
- RCTStatusBarManagerCompat.setTranslucent(translucent);
33
- },
34
- setStyle: statusBarStyle => {
35
- RCTStatusBarManagerCompat.setStyle(statusBarStyle);
36
- },
37
- setHidden: hidden => {
38
- RCTStatusBarManagerCompat.setHidden(hidden);
39
- }
40
- };
41
-
42
- // Define a function to apply the monkey patch
43
- const applyMonkeyPatch = () => {
44
- Object.assign(NativeAndroidManager.default, ModifiedNativeAndroidManager);
45
- };
46
-
47
- // Define a function to revert changes back to the original state
48
- exports.applyMonkeyPatch = applyMonkeyPatch;
49
- const revertMonkeyPatch = () => {
50
- Object.assign(NativeAndroidManager.default, OriginalNativeAndroidManager);
51
- };
52
- exports.revertMonkeyPatch = revertMonkeyPatch;
53
- //# sourceMappingURL=monkey-patch.android.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["NativeAndroidManager","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","RCTStatusBarManagerCompat","OriginalNativeAndroidManager","ModifiedNativeAndroidManager","setColor","color","animated","setTranslucent","translucent","setStyle","statusBarStyle","setHidden","hidden","applyMonkeyPatch","assign","exports","revertMonkeyPatch"],"sources":["monkey-patch.android.ts"],"sourcesContent":["// @ts-expect-error because there is no corresponding type definition\nimport * as NativeAndroidManager from \"react-native/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid\";\n\nconst RCTStatusBarManagerCompat =\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(\"./specs/NativeStatusBarManagerCompat\").default;\n\n// Copy original default manager to keep its original state and methods\nconst OriginalNativeAndroidManager = { ...NativeAndroidManager.default };\n\n// Create a new object that modifies the necessary methods\n// On Android < 11 RN uses legacy API which breaks EdgeToEdge mode in RN, so\n// in order to use library on all available platforms we have to monkey patch\n// default RN implementation and use modern `WindowInsetsControllerCompat`.\nconst ModifiedNativeAndroidManager = {\n ...NativeAndroidManager.default, // Spread original properties to keep existing functionality\n setColor: (color: number, animated: boolean): void => {\n RCTStatusBarManagerCompat.setColor(color, animated);\n },\n setTranslucent: (translucent: boolean): void => {\n RCTStatusBarManagerCompat.setTranslucent(translucent);\n },\n setStyle: (\n statusBarStyle?: \"default\" | \"dark-content\" | \"light-content\",\n ): void => {\n RCTStatusBarManagerCompat.setStyle(statusBarStyle);\n },\n setHidden: (hidden: boolean): void => {\n RCTStatusBarManagerCompat.setHidden(hidden);\n },\n};\n\n// Define a function to apply the monkey patch\nexport const applyMonkeyPatch = () => {\n Object.assign(NativeAndroidManager.default, ModifiedNativeAndroidManager);\n};\n\n// Define a function to revert changes back to the original state\nexport const revertMonkeyPatch = () => {\n Object.assign(NativeAndroidManager.default, OriginalNativeAndroidManager);\n};\n"],"mappings":";;;;;;AACA,IAAAA,oBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAkH,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AADlH;;AAGA,MAAMW,yBAAyB;AAC7B;AACArB,OAAO,CAAC,sCAAsC,CAAC,CAACO,OAAO;;AAEzD;AACA,MAAMe,4BAA4B,GAAG;EAAE,GAAGxB,oBAAoB,CAACS;AAAQ,CAAC;;AAExE;AACA;AACA;AACA;AACA,MAAMgB,4BAA4B,GAAG;EACnC,GAAGzB,oBAAoB,CAACS,OAAO;EAAE;EACjCiB,QAAQ,EAAEA,CAACC,KAAa,EAAEC,QAAiB,KAAW;IACpDL,yBAAyB,CAACG,QAAQ,CAACC,KAAK,EAAEC,QAAQ,CAAC;EACrD,CAAC;EACDC,cAAc,EAAGC,WAAoB,IAAW;IAC9CP,yBAAyB,CAACM,cAAc,CAACC,WAAW,CAAC;EACvD,CAAC;EACDC,QAAQ,EACNC,cAA6D,IACpD;IACTT,yBAAyB,CAACQ,QAAQ,CAACC,cAAc,CAAC;EACpD,CAAC;EACDC,SAAS,EAAGC,MAAe,IAAW;IACpCX,yBAAyB,CAACU,SAAS,CAACC,MAAM,CAAC;EAC7C;AACF,CAAC;;AAED;AACO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EACpCpB,MAAM,CAACqB,MAAM,CAACpC,oBAAoB,CAACS,OAAO,EAAEgB,4BAA4B,CAAC;AAC3E,CAAC;;AAED;AAAAY,OAAA,CAAAF,gBAAA,GAAAA,gBAAA;AACO,MAAMG,iBAAiB,GAAGA,CAAA,KAAM;EACrCvB,MAAM,CAACqB,MAAM,CAACpC,oBAAoB,CAACS,OAAO,EAAEe,4BAA4B,CAAC;AAC3E,CAAC;AAACa,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.revertMonkeyPatch = exports.applyMonkeyPatch = void 0;
7
- // stub for all platforms
8
- const NOOP = () => {};
9
- const applyMonkeyPatch = exports.applyMonkeyPatch = NOOP;
10
- const revertMonkeyPatch = exports.revertMonkeyPatch = NOOP;
11
- //# sourceMappingURL=monkey-patch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["NOOP","applyMonkeyPatch","exports","revertMonkeyPatch"],"sources":["monkey-patch.ts"],"sourcesContent":["// stub for all platforms\nconst NOOP = () => {};\n\nexport const applyMonkeyPatch = NOOP;\nexport const revertMonkeyPatch = NOOP;\n"],"mappings":";;;;;;AAAA;AACA,MAAMA,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAEd,MAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGD,IAAI;AAC7B,MAAMG,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,GAAGH,IAAI","ignoreList":[]}
@@ -1,4 +0,0 @@
1
- import { useColorScheme as useColorSchemeRN } from "react-native";
2
- const useColorScheme = () => useColorSchemeRN() || "light";
3
- export default useColorScheme;
4
- //# sourceMappingURL=useColorScheme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useColorScheme","useColorSchemeRN"],"sources":["useColorScheme.ts"],"sourcesContent":["import { useColorScheme as useColorSchemeRN } from \"react-native\";\n\nconst useColorScheme = () => useColorSchemeRN() || \"light\";\n\nexport default useColorScheme;\n"],"mappings":"AAAA,SAASA,cAAc,IAAIC,gBAAgB,QAAQ,cAAc;AAEjE,MAAMD,cAAc,GAAGA,CAAA,KAAMC,gBAAgB,CAAC,CAAC,IAAI,OAAO;AAE1D,eAAeD,cAAc","ignoreList":[]}
@@ -1,42 +0,0 @@
1
- // @ts-expect-error because there is no corresponding type definition
2
- import * as NativeAndroidManager from "react-native/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid";
3
- const RCTStatusBarManagerCompat =
4
- // eslint-disable-next-line @typescript-eslint/no-var-requires
5
- require("./specs/NativeStatusBarManagerCompat").default;
6
-
7
- // Copy original default manager to keep its original state and methods
8
- const OriginalNativeAndroidManager = {
9
- ...NativeAndroidManager.default
10
- };
11
-
12
- // Create a new object that modifies the necessary methods
13
- // On Android < 11 RN uses legacy API which breaks EdgeToEdge mode in RN, so
14
- // in order to use library on all available platforms we have to monkey patch
15
- // default RN implementation and use modern `WindowInsetsControllerCompat`.
16
- const ModifiedNativeAndroidManager = {
17
- ...NativeAndroidManager.default,
18
- // Spread original properties to keep existing functionality
19
- setColor: (color, animated) => {
20
- RCTStatusBarManagerCompat.setColor(color, animated);
21
- },
22
- setTranslucent: translucent => {
23
- RCTStatusBarManagerCompat.setTranslucent(translucent);
24
- },
25
- setStyle: statusBarStyle => {
26
- RCTStatusBarManagerCompat.setStyle(statusBarStyle);
27
- },
28
- setHidden: hidden => {
29
- RCTStatusBarManagerCompat.setHidden(hidden);
30
- }
31
- };
32
-
33
- // Define a function to apply the monkey patch
34
- export const applyMonkeyPatch = () => {
35
- Object.assign(NativeAndroidManager.default, ModifiedNativeAndroidManager);
36
- };
37
-
38
- // Define a function to revert changes back to the original state
39
- export const revertMonkeyPatch = () => {
40
- Object.assign(NativeAndroidManager.default, OriginalNativeAndroidManager);
41
- };
42
- //# sourceMappingURL=monkey-patch.android.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["NativeAndroidManager","RCTStatusBarManagerCompat","require","default","OriginalNativeAndroidManager","ModifiedNativeAndroidManager","setColor","color","animated","setTranslucent","translucent","setStyle","statusBarStyle","setHidden","hidden","applyMonkeyPatch","Object","assign","revertMonkeyPatch"],"sources":["monkey-patch.android.ts"],"sourcesContent":["// @ts-expect-error because there is no corresponding type definition\nimport * as NativeAndroidManager from \"react-native/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid\";\n\nconst RCTStatusBarManagerCompat =\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(\"./specs/NativeStatusBarManagerCompat\").default;\n\n// Copy original default manager to keep its original state and methods\nconst OriginalNativeAndroidManager = { ...NativeAndroidManager.default };\n\n// Create a new object that modifies the necessary methods\n// On Android < 11 RN uses legacy API which breaks EdgeToEdge mode in RN, so\n// in order to use library on all available platforms we have to monkey patch\n// default RN implementation and use modern `WindowInsetsControllerCompat`.\nconst ModifiedNativeAndroidManager = {\n ...NativeAndroidManager.default, // Spread original properties to keep existing functionality\n setColor: (color: number, animated: boolean): void => {\n RCTStatusBarManagerCompat.setColor(color, animated);\n },\n setTranslucent: (translucent: boolean): void => {\n RCTStatusBarManagerCompat.setTranslucent(translucent);\n },\n setStyle: (\n statusBarStyle?: \"default\" | \"dark-content\" | \"light-content\",\n ): void => {\n RCTStatusBarManagerCompat.setStyle(statusBarStyle);\n },\n setHidden: (hidden: boolean): void => {\n RCTStatusBarManagerCompat.setHidden(hidden);\n },\n};\n\n// Define a function to apply the monkey patch\nexport const applyMonkeyPatch = () => {\n Object.assign(NativeAndroidManager.default, ModifiedNativeAndroidManager);\n};\n\n// Define a function to revert changes back to the original state\nexport const revertMonkeyPatch = () => {\n Object.assign(NativeAndroidManager.default, OriginalNativeAndroidManager);\n};\n"],"mappings":"AAAA;AACA,OAAO,KAAKA,oBAAoB,MAAM,2EAA2E;AAEjH,MAAMC,yBAAyB;AAC7B;AACAC,OAAO,CAAC,sCAAsC,CAAC,CAACC,OAAO;;AAEzD;AACA,MAAMC,4BAA4B,GAAG;EAAE,GAAGJ,oBAAoB,CAACG;AAAQ,CAAC;;AAExE;AACA;AACA;AACA;AACA,MAAME,4BAA4B,GAAG;EACnC,GAAGL,oBAAoB,CAACG,OAAO;EAAE;EACjCG,QAAQ,EAAEA,CAACC,KAAa,EAAEC,QAAiB,KAAW;IACpDP,yBAAyB,CAACK,QAAQ,CAACC,KAAK,EAAEC,QAAQ,CAAC;EACrD,CAAC;EACDC,cAAc,EAAGC,WAAoB,IAAW;IAC9CT,yBAAyB,CAACQ,cAAc,CAACC,WAAW,CAAC;EACvD,CAAC;EACDC,QAAQ,EACNC,cAA6D,IACpD;IACTX,yBAAyB,CAACU,QAAQ,CAACC,cAAc,CAAC;EACpD,CAAC;EACDC,SAAS,EAAGC,MAAe,IAAW;IACpCb,yBAAyB,CAACY,SAAS,CAACC,MAAM,CAAC;EAC7C;AACF,CAAC;;AAED;AACA,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EACpCC,MAAM,CAACC,MAAM,CAACjB,oBAAoB,CAACG,OAAO,EAAEE,4BAA4B,CAAC;AAC3E,CAAC;;AAED;AACA,OAAO,MAAMa,iBAAiB,GAAGA,CAAA,KAAM;EACrCF,MAAM,CAACC,MAAM,CAACjB,oBAAoB,CAACG,OAAO,EAAEC,4BAA4B,CAAC;AAC3E,CAAC","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- // stub for all platforms
2
- const NOOP = () => {};
3
- export const applyMonkeyPatch = NOOP;
4
- export const revertMonkeyPatch = NOOP;
5
- //# sourceMappingURL=monkey-patch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["NOOP","applyMonkeyPatch","revertMonkeyPatch"],"sources":["monkey-patch.ts"],"sourcesContent":["// stub for all platforms\nconst NOOP = () => {};\n\nexport const applyMonkeyPatch = NOOP;\nexport const revertMonkeyPatch = NOOP;\n"],"mappings":"AAAA;AACA,MAAMA,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAErB,OAAO,MAAMC,gBAAgB,GAAGD,IAAI;AACpC,OAAO,MAAME,iBAAiB,GAAGF,IAAI","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- declare const useColorScheme: () => "light" | "dark";
2
- export default useColorScheme;
@@ -1,2 +0,0 @@
1
- export declare const applyMonkeyPatch: () => void;
2
- export declare const revertMonkeyPatch: () => void;
@@ -1,2 +0,0 @@
1
- export declare const applyMonkeyPatch: () => void;
2
- export declare const revertMonkeyPatch: () => void;
@@ -1,5 +0,0 @@
1
- import { useColorScheme as useColorSchemeRN } from "react-native";
2
-
3
- const useColorScheme = () => useColorSchemeRN() || "light";
4
-
5
- export default useColorScheme;
@@ -1,41 +0,0 @@
1
- // @ts-expect-error because there is no corresponding type definition
2
- import * as NativeAndroidManager from "react-native/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid";
3
-
4
- const RCTStatusBarManagerCompat =
5
- // eslint-disable-next-line @typescript-eslint/no-var-requires
6
- require("./specs/NativeStatusBarManagerCompat").default;
7
-
8
- // Copy original default manager to keep its original state and methods
9
- const OriginalNativeAndroidManager = { ...NativeAndroidManager.default };
10
-
11
- // Create a new object that modifies the necessary methods
12
- // On Android < 11 RN uses legacy API which breaks EdgeToEdge mode in RN, so
13
- // in order to use library on all available platforms we have to monkey patch
14
- // default RN implementation and use modern `WindowInsetsControllerCompat`.
15
- const ModifiedNativeAndroidManager = {
16
- ...NativeAndroidManager.default, // Spread original properties to keep existing functionality
17
- setColor: (color: number, animated: boolean): void => {
18
- RCTStatusBarManagerCompat.setColor(color, animated);
19
- },
20
- setTranslucent: (translucent: boolean): void => {
21
- RCTStatusBarManagerCompat.setTranslucent(translucent);
22
- },
23
- setStyle: (
24
- statusBarStyle?: "default" | "dark-content" | "light-content",
25
- ): void => {
26
- RCTStatusBarManagerCompat.setStyle(statusBarStyle);
27
- },
28
- setHidden: (hidden: boolean): void => {
29
- RCTStatusBarManagerCompat.setHidden(hidden);
30
- },
31
- };
32
-
33
- // Define a function to apply the monkey patch
34
- export const applyMonkeyPatch = () => {
35
- Object.assign(NativeAndroidManager.default, ModifiedNativeAndroidManager);
36
- };
37
-
38
- // Define a function to revert changes back to the original state
39
- export const revertMonkeyPatch = () => {
40
- Object.assign(NativeAndroidManager.default, OriginalNativeAndroidManager);
41
- };
@@ -1,5 +0,0 @@
1
- // stub for all platforms
2
- const NOOP = () => {};
3
-
4
- export const applyMonkeyPatch = NOOP;
5
- export const revertMonkeyPatch = NOOP;