react-native-keyboard-controller 1.7.0 → 1.9.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 (133) hide show
  1. package/README.md +2 -0
  2. package/android/gradle.properties +1 -1
  3. package/android/src/fabric/java/com/reactnativekeyboardcontroller/KeyboardControllerViewManager.kt +5 -0
  4. package/android/src/main/java/com/reactnativekeyboardcontroller/events/FocusedInputLayoutChangedEvent.kt +41 -0
  5. package/android/src/main/java/com/reactnativekeyboardcontroller/extensions/ThemedReactContext.kt +9 -0
  6. package/android/src/main/java/com/reactnativekeyboardcontroller/extensions/View.kt +7 -0
  7. package/android/src/main/java/com/reactnativekeyboardcontroller/listeners/FocusedInputLayoutObserver.kt +93 -0
  8. package/android/src/main/java/com/reactnativekeyboardcontroller/{KeyboardAnimationCallback.kt → listeners/KeyboardAnimationCallback.kt} +86 -55
  9. package/android/src/main/java/com/reactnativekeyboardcontroller/managers/KeyboardControllerViewManagerImpl.kt +6 -0
  10. package/android/src/main/java/com/reactnativekeyboardcontroller/views/EdgeToEdgeReactViewGroup.kt +120 -50
  11. package/android/src/paper/java/com/reactnativekeyboardcontroller/KeyboardControllerViewManager.kt +5 -0
  12. package/ios/Extensions.swift +7 -0
  13. package/ios/KeyboardController.xcodeproj/project.pbxproj +41 -7
  14. package/ios/events/FocusedInputLayoutChangedEvent.h +16 -0
  15. package/ios/events/FocusedInputLayoutChangedEvent.m +75 -0
  16. package/ios/observers/FocusedInputLayoutObserver.swift +136 -0
  17. package/ios/{KeyboardControllerView.mm → views/KeyboardControllerView.mm} +54 -3
  18. package/ios/{KeyboardControllerViewManager.mm → views/KeyboardControllerViewManager.mm} +7 -0
  19. package/ios/{KeyboardControllerViewManager.swift → views/KeyboardControllerViewManager.swift} +25 -1
  20. package/jest/index.js +16 -0
  21. package/lib/commonjs/animated.js +34 -6
  22. package/lib/commonjs/animated.js.map +1 -1
  23. package/lib/commonjs/bindings.js.map +1 -1
  24. package/lib/commonjs/bindings.native.js.map +1 -1
  25. package/lib/commonjs/components/KeyboardAvoidingView/hooks.js +9 -1
  26. package/lib/commonjs/components/KeyboardAvoidingView/hooks.js.map +1 -1
  27. package/lib/commonjs/components/KeyboardAvoidingView/index.js +7 -4
  28. package/lib/commonjs/components/KeyboardAvoidingView/index.js.map +1 -1
  29. package/lib/commonjs/components/KeyboardStickyView/index.js +44 -0
  30. package/lib/commonjs/components/KeyboardStickyView/index.js.map +1 -0
  31. package/lib/commonjs/components/index.js +7 -0
  32. package/lib/commonjs/components/index.js.map +1 -1
  33. package/lib/commonjs/constants.js.map +1 -1
  34. package/lib/commonjs/context.js +9 -4
  35. package/lib/commonjs/context.js.map +1 -1
  36. package/lib/commonjs/hooks.js +16 -1
  37. package/lib/commonjs/hooks.js.map +1 -1
  38. package/lib/commonjs/index.js +8 -2
  39. package/lib/commonjs/index.js.map +1 -1
  40. package/lib/commonjs/internal.js.map +1 -1
  41. package/lib/commonjs/monkey-patch.android.js +32 -20
  42. package/lib/commonjs/monkey-patch.android.js.map +1 -1
  43. package/lib/commonjs/monkey-patch.js +11 -1
  44. package/lib/commonjs/monkey-patch.js.map +1 -1
  45. package/lib/commonjs/reanimated.js +5 -2
  46. package/lib/commonjs/reanimated.js.map +1 -1
  47. package/lib/commonjs/reanimated.native.js +18 -1
  48. package/lib/commonjs/reanimated.native.js.map +1 -1
  49. package/lib/commonjs/replicas.js +1 -1
  50. package/lib/commonjs/replicas.js.map +1 -1
  51. package/lib/commonjs/specs/KeyboardControllerViewNativeComponent.js.map +1 -1
  52. package/lib/commonjs/specs/KeyboardGestureAreaNativeComponent.js.map +1 -1
  53. package/lib/commonjs/specs/NativeKeyboardController.js.map +1 -1
  54. package/lib/commonjs/specs/NativeStatusBarManagerCompat.js.map +1 -1
  55. package/lib/commonjs/types.js.map +1 -1
  56. package/lib/module/animated.js +37 -9
  57. package/lib/module/animated.js.map +1 -1
  58. package/lib/module/bindings.js.map +1 -1
  59. package/lib/module/bindings.native.js +1 -1
  60. package/lib/module/bindings.native.js.map +1 -1
  61. package/lib/module/components/KeyboardAvoidingView/hooks.js +9 -1
  62. package/lib/module/components/KeyboardAvoidingView/hooks.js.map +1 -1
  63. package/lib/module/components/KeyboardAvoidingView/index.js +9 -6
  64. package/lib/module/components/KeyboardAvoidingView/index.js.map +1 -1
  65. package/lib/module/components/KeyboardStickyView/index.js +35 -0
  66. package/lib/module/components/KeyboardStickyView/index.js.map +1 -0
  67. package/lib/module/components/index.js +1 -0
  68. package/lib/module/components/index.js.map +1 -1
  69. package/lib/module/constants.js.map +1 -1
  70. package/lib/module/context.js +9 -4
  71. package/lib/module/context.js.map +1 -1
  72. package/lib/module/hooks.js +14 -1
  73. package/lib/module/hooks.js.map +1 -1
  74. package/lib/module/index.js +1 -2
  75. package/lib/module/index.js.map +1 -1
  76. package/lib/module/internal.js.map +1 -1
  77. package/lib/module/monkey-patch.android.js +26 -20
  78. package/lib/module/monkey-patch.android.js.map +1 -1
  79. package/lib/module/monkey-patch.js +3 -0
  80. package/lib/module/monkey-patch.js.map +1 -1
  81. package/lib/module/reanimated.js +3 -1
  82. package/lib/module/reanimated.js.map +1 -1
  83. package/lib/module/reanimated.native.js +16 -0
  84. package/lib/module/reanimated.native.js.map +1 -1
  85. package/lib/module/replicas.js +2 -2
  86. package/lib/module/replicas.js.map +1 -1
  87. package/lib/module/specs/KeyboardControllerViewNativeComponent.js.map +1 -1
  88. package/lib/module/specs/KeyboardGestureAreaNativeComponent.js.map +1 -1
  89. package/lib/module/specs/NativeKeyboardController.js.map +1 -1
  90. package/lib/module/specs/NativeStatusBarManagerCompat.js.map +1 -1
  91. package/lib/module/types.js.map +1 -1
  92. package/lib/typescript/animated.d.ts +8 -1
  93. package/lib/typescript/components/KeyboardAvoidingView/hooks.d.ts +1 -0
  94. package/lib/typescript/components/KeyboardAvoidingView/index.d.ts +2 -1
  95. package/lib/typescript/components/KeyboardStickyView/index.d.ts +20 -0
  96. package/lib/typescript/components/index.d.ts +1 -0
  97. package/lib/typescript/context.d.ts +6 -3
  98. package/lib/typescript/hooks.d.ts +9 -2
  99. package/lib/typescript/index.d.ts +1 -2
  100. package/lib/typescript/internal.d.ts +1 -1
  101. package/lib/typescript/monkey-patch.android.d.ts +2 -1
  102. package/lib/typescript/monkey-patch.d.ts +2 -0
  103. package/lib/typescript/reanimated.d.ts +2 -1
  104. package/lib/typescript/reanimated.native.d.ts +2 -1
  105. package/lib/typescript/specs/KeyboardControllerViewNativeComponent.d.ts +13 -0
  106. package/lib/typescript/types.d.ts +17 -0
  107. package/package.json +9 -28
  108. package/src/animated.tsx +53 -9
  109. package/src/bindings.native.ts +1 -1
  110. package/src/bindings.ts +3 -1
  111. package/src/components/KeyboardAvoidingView/hooks.ts +9 -1
  112. package/src/components/KeyboardAvoidingView/index.tsx +15 -13
  113. package/src/components/KeyboardStickyView/index.tsx +63 -0
  114. package/src/components/index.ts +1 -0
  115. package/src/constants.ts +2 -0
  116. package/src/context.ts +16 -5
  117. package/src/hooks.ts +16 -6
  118. package/src/index.ts +1 -3
  119. package/src/internal.ts +3 -1
  120. package/src/monkey-patch.android.ts +27 -21
  121. package/src/monkey-patch.ts +3 -0
  122. package/src/reanimated.native.ts +30 -1
  123. package/src/reanimated.ts +13 -2
  124. package/src/replicas.ts +2 -2
  125. package/src/specs/KeyboardControllerViewNativeComponent.ts +16 -1
  126. package/src/specs/KeyboardGestureAreaNativeComponent.ts +2 -1
  127. package/src/specs/NativeKeyboardController.ts +2 -1
  128. package/src/specs/NativeStatusBarManagerCompat.ts +2 -1
  129. package/src/types.ts +28 -1
  130. /package/ios/{KeyboardMoveEvent.h → events/KeyboardMoveEvent.h} +0 -0
  131. /package/ios/{KeyboardMoveEvent.m → events/KeyboardMoveEvent.m} +0 -0
  132. /package/ios/{KeyboardMovementObserver.swift → observers/KeyboardMovementObserver.swift} +0 -0
  133. /package/ios/{KeyboardControllerView.h → views/KeyboardControllerView.h} +0 -0
package/src/types.ts CHANGED
@@ -11,12 +11,24 @@ export type NativeEvent = {
11
11
  duration: number;
12
12
  target: number;
13
13
  };
14
+ export type FocusedInputLayoutChangedEvent = {
15
+ target: number;
16
+ layout: {
17
+ x: number;
18
+ y: number;
19
+ width: number;
20
+ height: number;
21
+ absoluteX: number;
22
+ absoluteY: number;
23
+ };
24
+ };
14
25
  export type EventWithName<T> = {
15
26
  eventName: string;
16
27
  } & T;
17
28
 
18
29
  // native View/Module declarations
19
30
  export type KeyboardControllerProps = {
31
+ enabled?: boolean;
20
32
  onKeyboardMoveStart?: (
21
33
  e: NativeSyntheticEvent<EventWithName<NativeEvent>>
22
34
  ) => void;
@@ -29,10 +41,16 @@ export type KeyboardControllerProps = {
29
41
  onKeyboardMoveInteractive?: (
30
42
  e: NativeSyntheticEvent<EventWithName<NativeEvent>>
31
43
  ) => void;
32
- // fake prop used to activate reanimated bindings
44
+ onFocusedInputLayoutChanged?: (
45
+ e: NativeSyntheticEvent<EventWithName<FocusedInputLayoutChangedEvent>>
46
+ ) => void;
47
+ // fake props used to activate reanimated bindings
33
48
  onKeyboardMoveReanimated?: (
34
49
  e: NativeSyntheticEvent<EventWithName<NativeEvent>>
35
50
  ) => void;
51
+ onFocusedInputLayoutChangedReanimated?: (
52
+ e: NativeSyntheticEvent<EventWithName<FocusedInputLayoutChangedEvent>>
53
+ ) => void;
36
54
  statusBarTranslucent?: boolean;
37
55
  navigationBarTranslucent?: boolean;
38
56
  } & ViewProps;
@@ -90,6 +108,15 @@ export type KeyboardHandlerHook<TContext, Event> = (
90
108
  },
91
109
  dependencies?: unknown[]
92
110
  ) => (e: NativeSyntheticEvent<Event>) => void;
111
+ export type FocusedInputHandlerHook<TContext, Event> = (
112
+ handlers: {
113
+ onFocusedInputLayoutChanged?: (
114
+ e: FocusedInputLayoutChangedEvent,
115
+ context: TContext
116
+ ) => void;
117
+ },
118
+ dependencies?: unknown[]
119
+ ) => (e: NativeSyntheticEvent<Event>) => void;
93
120
 
94
121
  // package types
95
122
  export type Handlers<T> = Record<string, T | undefined>;