@react-native-ohos/react-native-keyboard-controller 1.12.8-rc.7 → 1.12.9

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 (169) hide show
  1. package/LICENSE +21 -21
  2. package/README.OpenSource +10 -10
  3. package/README.md +603 -19
  4. package/harmony/keyboard_controller/BuildProfile.ets +16 -16
  5. package/harmony/keyboard_controller/Index.ets +8 -8
  6. package/harmony/keyboard_controller/ResourceTable.txt +8 -8
  7. package/harmony/keyboard_controller/build-profile.json5 +31 -31
  8. package/harmony/keyboard_controller/hvigorfile.ts +6 -6
  9. package/harmony/keyboard_controller/obfuscation-rules.txt +17 -17
  10. package/harmony/keyboard_controller/oh-package-lock.json5 +29 -0
  11. package/harmony/keyboard_controller/oh-package.json5 +11 -11
  12. package/harmony/keyboard_controller/src/main/cpp/CMakeLists.txt +7 -7
  13. package/harmony/keyboard_controller/src/main/cpp/EventEmitters.cpp +119 -96
  14. package/harmony/keyboard_controller/src/main/cpp/EventEmitters.h +90 -90
  15. package/harmony/keyboard_controller/src/main/cpp/KeyboardControllerViewComponentDescriptor.h +77 -77
  16. package/harmony/keyboard_controller/src/main/cpp/KeyboardControllerViewComponentInstance.cpp +816 -158
  17. package/harmony/keyboard_controller/src/main/cpp/KeyboardControllerViewComponentInstance.h +147 -74
  18. package/harmony/keyboard_controller/src/main/cpp/KeyboardControllerViewJSIBinder.h +43 -43
  19. package/harmony/keyboard_controller/src/main/cpp/KeyboardGestureAreaComponentDescriptor.h +64 -64
  20. package/harmony/keyboard_controller/src/main/cpp/KeyboardGestureAreaComponentInstance.cpp +88 -88
  21. package/harmony/keyboard_controller/src/main/cpp/KeyboardGestureAreaComponentInstance.h +63 -63
  22. package/harmony/keyboard_controller/src/main/cpp/KeyboardGestureAreaJSIBinder.h +39 -39
  23. package/harmony/keyboard_controller/src/main/cpp/RNKeyboardController.cpp +25 -25
  24. package/harmony/keyboard_controller/src/main/cpp/RNKeyboardController.h +27 -27
  25. package/harmony/keyboard_controller/src/main/cpp/RNKeyboardControllerPackage.cpp +43 -43
  26. package/harmony/keyboard_controller/src/main/cpp/RNKeyboardControllerPackage.h +56 -56
  27. package/harmony/keyboard_controller/src/main/cpp/RNStatusBarManagerCompat.cpp +24 -24
  28. package/harmony/keyboard_controller/src/main/cpp/RNStatusBarManagerCompat.h +28 -28
  29. package/harmony/keyboard_controller/src/main/cpp/ViewHierarchyNavigator.cpp +186 -0
  30. package/harmony/keyboard_controller/src/main/cpp/ViewHierarchyNavigator.h +112 -0
  31. package/harmony/keyboard_controller/src/main/cpp/keyboardControllerPackage.cpp +43 -43
  32. package/harmony/keyboard_controller/src/main/cpp/keyboardControllerPackage.h +56 -56
  33. package/harmony/keyboard_controller/src/main/ets/Logger.ts +45 -45
  34. package/harmony/keyboard_controller/src/main/ets/RNKeyboardControllerPackage.ets +49 -49
  35. package/harmony/keyboard_controller/src/main/ets/RNKeyboardControllerTurboModule.ts +405 -210
  36. package/harmony/keyboard_controller/src/main/ets/RNStatusBarManagerCompatTurboModule.ts +107 -98
  37. package/harmony/keyboard_controller/src/main/ets/Type.ts +41 -41
  38. package/harmony/keyboard_controller/src/main/module.json +29 -29
  39. package/harmony/keyboard_controller/src/main/module.json5 +11 -11
  40. package/harmony/keyboard_controller/src/main/resources/base/element/string.json +8 -8
  41. package/harmony/keyboard_controller/src/main/resources/en_US/element/string.json +8 -8
  42. package/harmony/keyboard_controller/src/main/resources/zh_CN/element/string.json +8 -8
  43. package/harmony/keyboard_controller/ts.ets +8 -8
  44. package/harmony/keyboard_controller.har +0 -0
  45. package/lib/commonjs/animated.js +4 -16
  46. package/lib/commonjs/animated.js.map +1 -1
  47. package/lib/commonjs/bindings.js +3 -3
  48. package/lib/commonjs/bindings.js.map +1 -1
  49. package/lib/commonjs/bindings.native.js +3 -3
  50. package/lib/commonjs/bindings.native.js.map +1 -1
  51. package/lib/commonjs/components/KeyboardAvoidingView/hooks.js.map +1 -1
  52. package/lib/commonjs/components/KeyboardAvoidingView/index.js +3 -3
  53. package/lib/commonjs/components/KeyboardAvoidingView/index.js.map +1 -1
  54. package/lib/commonjs/components/KeyboardAwareScrollView/index.js +43 -41
  55. package/lib/commonjs/components/KeyboardAwareScrollView/index.js.map +1 -1
  56. package/lib/commonjs/components/KeyboardAwareScrollView/useSmoothKeyboardHandler.js +3 -3
  57. package/lib/commonjs/components/KeyboardAwareScrollView/useSmoothKeyboardHandler.js.map +1 -1
  58. package/lib/commonjs/components/KeyboardAwareScrollView/utils.js.map +1 -1
  59. package/lib/commonjs/components/KeyboardStickyView/index.js.map +1 -1
  60. package/lib/commonjs/components/KeyboardToolbar/Arrow.js.map +1 -1
  61. package/lib/commonjs/components/KeyboardToolbar/Button.js.map +1 -1
  62. package/lib/commonjs/components/KeyboardToolbar/colors.js.map +1 -1
  63. package/lib/commonjs/components/KeyboardToolbar/colors.native.js.map +1 -1
  64. package/lib/commonjs/components/KeyboardToolbar/index.js +3 -3
  65. package/lib/commonjs/components/KeyboardToolbar/index.js.map +1 -1
  66. package/lib/commonjs/components/KeyboardToolbar/types.js.map +1 -1
  67. package/lib/commonjs/components/hooks/useColorScheme.js.map +1 -1
  68. package/lib/commonjs/components/index.js.map +1 -1
  69. package/lib/commonjs/constants.js +2 -0
  70. package/lib/commonjs/constants.js.map +1 -1
  71. package/lib/commonjs/context.js.map +1 -1
  72. package/lib/commonjs/hooks/index.js.map +1 -1
  73. package/lib/commonjs/hooks/useWindowDimensions/index.android.js.map +1 -1
  74. package/lib/commonjs/hooks/useWindowDimensions/index.js.map +1 -1
  75. package/lib/commonjs/index.js.map +1 -1
  76. package/lib/commonjs/internal.js +18 -18
  77. package/lib/commonjs/internal.js.map +1 -1
  78. package/lib/commonjs/monkey-patch.android.js +4 -4
  79. package/lib/commonjs/monkey-patch.android.js.map +1 -1
  80. package/lib/commonjs/monkey-patch.js.map +1 -1
  81. package/lib/commonjs/reanimated.js.map +1 -1
  82. package/lib/commonjs/reanimated.native.js.map +1 -1
  83. package/lib/commonjs/specs/KeyboardControllerViewNativeComponent.js.map +1 -1
  84. package/lib/commonjs/specs/KeyboardGestureAreaNativeComponent.js.map +1 -1
  85. package/lib/commonjs/specs/NativeKeyboardController.js.map +1 -1
  86. package/lib/commonjs/specs/NativeStatusBarManagerCompat.js.map +1 -1
  87. package/lib/commonjs/types.js.map +1 -1
  88. package/lib/commonjs/utils.js.map +1 -1
  89. package/lib/module/animated.js +5 -17
  90. package/lib/module/animated.js.map +1 -1
  91. package/lib/module/bindings.js +3 -3
  92. package/lib/module/bindings.js.map +1 -1
  93. package/lib/module/bindings.native.js +3 -3
  94. package/lib/module/bindings.native.js.map +1 -1
  95. package/lib/module/components/KeyboardAvoidingView/hooks.js.map +1 -1
  96. package/lib/module/components/KeyboardAvoidingView/index.js +3 -3
  97. package/lib/module/components/KeyboardAvoidingView/index.js.map +1 -1
  98. package/lib/module/components/KeyboardAwareScrollView/index.js +44 -42
  99. package/lib/module/components/KeyboardAwareScrollView/index.js.map +1 -1
  100. package/lib/module/components/KeyboardAwareScrollView/useSmoothKeyboardHandler.js +3 -3
  101. package/lib/module/components/KeyboardAwareScrollView/useSmoothKeyboardHandler.js.map +1 -1
  102. package/lib/module/components/KeyboardAwareScrollView/utils.js.map +1 -1
  103. package/lib/module/components/KeyboardStickyView/index.js.map +1 -1
  104. package/lib/module/components/KeyboardToolbar/Arrow.js.map +1 -1
  105. package/lib/module/components/KeyboardToolbar/Button.js.map +1 -1
  106. package/lib/module/components/KeyboardToolbar/colors.js.map +1 -1
  107. package/lib/module/components/KeyboardToolbar/colors.native.js.map +1 -1
  108. package/lib/module/components/KeyboardToolbar/index.js +3 -3
  109. package/lib/module/components/KeyboardToolbar/index.js.map +1 -1
  110. package/lib/module/components/KeyboardToolbar/types.js.map +1 -1
  111. package/lib/module/components/hooks/useColorScheme.js.map +1 -1
  112. package/lib/module/components/index.js.map +1 -1
  113. package/lib/module/constants.js +2 -0
  114. package/lib/module/constants.js.map +1 -1
  115. package/lib/module/context.js.map +1 -1
  116. package/lib/module/hooks/index.js.map +1 -1
  117. package/lib/module/hooks/useWindowDimensions/index.android.js.map +1 -1
  118. package/lib/module/hooks/useWindowDimensions/index.js.map +1 -1
  119. package/lib/module/index.js.map +1 -1
  120. package/lib/module/internal.js +18 -18
  121. package/lib/module/internal.js.map +1 -1
  122. package/lib/module/monkey-patch.android.js +4 -4
  123. package/lib/module/monkey-patch.android.js.map +1 -1
  124. package/lib/module/monkey-patch.js.map +1 -1
  125. package/lib/module/reanimated.js.map +1 -1
  126. package/lib/module/reanimated.native.js.map +1 -1
  127. package/lib/module/specs/KeyboardControllerViewNativeComponent.js.map +1 -1
  128. package/lib/module/specs/KeyboardGestureAreaNativeComponent.js.map +1 -1
  129. package/lib/module/specs/NativeKeyboardController.js.map +1 -1
  130. package/lib/module/specs/NativeStatusBarManagerCompat.js.map +1 -1
  131. package/lib/module/types.js.map +1 -1
  132. package/lib/module/utils.js.map +1 -1
  133. package/lib/typescript/types.d.ts +1 -0
  134. package/package.json +181 -177
  135. package/src/animated.tsx +246 -253
  136. package/src/bindings.native.ts +57 -57
  137. package/src/bindings.ts +38 -38
  138. package/src/components/KeyboardAvoidingView/hooks.ts +58 -58
  139. package/src/components/KeyboardAvoidingView/index.tsx +156 -156
  140. package/src/components/KeyboardAwareScrollView/index.tsx +381 -373
  141. package/src/components/KeyboardAwareScrollView/useSmoothKeyboardHandler.ts +133 -133
  142. package/src/components/KeyboardAwareScrollView/utils.ts +41 -41
  143. package/src/components/KeyboardStickyView/index.tsx +57 -57
  144. package/src/components/KeyboardToolbar/Arrow.tsx +80 -80
  145. package/src/components/KeyboardToolbar/Button.tsx +98 -98
  146. package/src/components/KeyboardToolbar/colors.native.ts +37 -37
  147. package/src/components/KeyboardToolbar/colors.ts +16 -16
  148. package/src/components/KeyboardToolbar/index.tsx +211 -211
  149. package/src/components/KeyboardToolbar/types.ts +40 -40
  150. package/src/components/hooks/useColorScheme.ts +5 -5
  151. package/src/components/index.ts +11 -11
  152. package/src/constants.ts +19 -19
  153. package/src/context.ts +65 -65
  154. package/src/hooks/index.ts +90 -90
  155. package/src/hooks/useWindowDimensions/index.android.ts +33 -33
  156. package/src/hooks/useWindowDimensions/index.ts +1 -1
  157. package/src/index.ts +21 -21
  158. package/src/internal.ts +84 -84
  159. package/src/monkey-patch.android.ts +44 -44
  160. package/src/monkey-patch.ts +4 -4
  161. package/src/reanimated.native.ts +132 -132
  162. package/src/reanimated.ts +29 -29
  163. package/src/specs/KeyboardControllerViewNativeComponent.ts +70 -70
  164. package/src/specs/KeyboardGestureAreaNativeComponent.ts +15 -15
  165. package/src/specs/NativeKeyboardController.ts +19 -19
  166. package/src/specs/NativeStatusBarManagerCompat.ts +14 -14
  167. package/src/types.ts +212 -211
  168. package/src/utils.ts +1 -1
  169. package/react-native-keyboard-controller.podspec +0 -61
package/src/types.ts CHANGED
@@ -1,211 +1,212 @@
1
- import type {
2
- EmitterSubscription,
3
- NativeSyntheticEvent,
4
- ViewProps,
5
- } from "react-native";
6
-
7
- // DirectEventHandler events declaration
8
- export type NativeEvent = {
9
- progress: number;
10
- height: number;
11
- duration: number;
12
- target: number;
13
- };
14
- export type FocusedInputLayoutChangedEvent = {
15
- target: number;
16
- parentScrollViewTarget: number;
17
- layout: {
18
- x: number;
19
- y: number;
20
- width: number;
21
- height: number;
22
- absoluteX: number;
23
- absoluteY: number;
24
- };
25
- };
26
- export type FocusedInputTextChangedEvent = {
27
- text: string;
28
- };
29
- export type FocusedInputSelectionChangedEvent = {
30
- target: number;
31
- selection: {
32
- start: {
33
- x: number;
34
- y: number;
35
- position: number;
36
- };
37
- end: {
38
- x: number;
39
- y: number;
40
- position: number;
41
- };
42
- };
43
- };
44
- export type EventWithName<T> = {
45
- eventName: string;
46
- } & T;
47
-
48
- // native View/Module declarations
49
- export type KeyboardControllerProps = {
50
- // callback props
51
- onKeyboardMoveStart?: (
52
- e: NativeSyntheticEvent<EventWithName<NativeEvent>>,
53
- ) => void;
54
- onKeyboardMove?: (
55
- e: NativeSyntheticEvent<EventWithName<NativeEvent>>,
56
- ) => void;
57
- onKeyboardMoveEnd?: (
58
- e: NativeSyntheticEvent<EventWithName<NativeEvent>>,
59
- ) => void;
60
- onKeyboardMoveInteractive?: (
61
- e: NativeSyntheticEvent<EventWithName<NativeEvent>>,
62
- ) => void;
63
- onFocusedInputLayoutChanged?: (
64
- e: NativeSyntheticEvent<EventWithName<FocusedInputLayoutChangedEvent>>,
65
- ) => void;
66
- onFocusedInputTextChanged?: (
67
- e: NativeSyntheticEvent<EventWithName<FocusedInputTextChangedEvent>>,
68
- ) => void;
69
- onFocusedInputSelectionChanged?: (
70
- e: NativeSyntheticEvent<EventWithName<FocusedInputSelectionChangedEvent>>,
71
- ) => void;
72
- // fake props used to activate reanimated bindings
73
- onKeyboardMoveReanimated?: (
74
- e: NativeSyntheticEvent<EventWithName<NativeEvent>>,
75
- ) => void;
76
- onFocusedInputLayoutChangedReanimated?: (
77
- e: NativeSyntheticEvent<EventWithName<FocusedInputLayoutChangedEvent>>,
78
- ) => void;
79
- onFocusedInputTextChangedReanimated?: (
80
- e: NativeSyntheticEvent<EventWithName<FocusedInputTextChangedEvent>>,
81
- ) => void;
82
- onFocusedInputSelectionChangedReanimated?: (
83
- e: NativeSyntheticEvent<EventWithName<FocusedInputSelectionChangedEvent>>,
84
- ) => void;
85
- // props
86
- statusBarTranslucent?: boolean;
87
- navigationBarTranslucent?: boolean;
88
- enabled?: boolean;
89
- } & ViewProps;
90
-
91
- export type KeyboardGestureAreaProps = {
92
- interpolator: "ios" | "linear";
93
- /**
94
- * Whether to allow to show a keyboard from dismissed state by swipe up.
95
- * Default to `false`.
96
- */
97
- showOnSwipeUp?: boolean;
98
- /**
99
- * Whether to allow to control a keyboard by gestures. The strategy how
100
- * it should be controlled is determined by `interpolator` property.
101
- * Defaults to `true`.
102
- */
103
- enableSwipeToDismiss?: boolean;
104
- } & ViewProps;
105
-
106
- export type Direction = "next" | "prev" | "current";
107
- export type KeyboardControllerModule = {
108
- // android only
109
- setDefaultMode: () => void;
110
- setInputMode: (mode: number) => void;
111
- // all platforms
112
- dismiss: () => void;
113
- setFocusTo: (direction: Direction) => void;
114
- // native event module stuff
115
- addListener: (eventName: string) => void;
116
- removeListeners: (count: number) => void;
117
- };
118
-
119
- // Event module declarations
120
- export type KeyboardControllerEvents =
121
- | "keyboardWillShow"
122
- | "keyboardDidShow"
123
- | "keyboardWillHide"
124
- | "keyboardDidHide";
125
- export type KeyboardEventData = {
126
- height: number;
127
- duration: number;
128
- timestamp: number;
129
- target: number;
130
- };
131
- export type KeyboardEventsModule = {
132
- addListener: (
133
- name: KeyboardControllerEvents,
134
- cb: (e: KeyboardEventData) => void,
135
- ) => EmitterSubscription;
136
- };
137
- export type FocusedInputAvailableEvents = "focusDidSet";
138
- export type FocusedInputEventData = {
139
- current: number;
140
- count: number;
141
- };
142
- export type FocusedInputEventsModule = {
143
- addListener: (
144
- name: FocusedInputAvailableEvents,
145
- cb: (e: FocusedInputEventData) => void,
146
- ) => EmitterSubscription;
147
- };
148
- export type WindowDimensionsAvailableEvents = "windowDidResize";
149
- export type WindowDimensionsEventData = {
150
- width: number;
151
- height: number;
152
- };
153
- export type WindowDimensionsEventsModule = {
154
- addListener: (
155
- name: WindowDimensionsAvailableEvents,
156
- cb: (e: WindowDimensionsEventData) => void,
157
- ) => EmitterSubscription;
158
- };
159
-
160
- // reanimated hook declaration
161
- export type KeyboardHandlerHook<TContext, Event> = (
162
- handlers: {
163
- onKeyboardMoveStart?: (e: NativeEvent, context: TContext) => void;
164
- onKeyboardMove?: (e: NativeEvent, context: TContext) => void;
165
- onKeyboardMoveEnd?: (e: NativeEvent, context: TContext) => void;
166
- onKeyboardMoveInteractive?: (e: NativeEvent, context: TContext) => void;
167
- },
168
- dependencies?: unknown[],
169
- ) => (e: NativeSyntheticEvent<Event>) => void;
170
- export type FocusedInputLayoutHandlerHook<TContext, Event> = (
171
- handlers: {
172
- onFocusedInputLayoutChanged?: (
173
- e: FocusedInputLayoutChangedEvent,
174
- context: TContext,
175
- ) => void;
176
- },
177
- dependencies?: unknown[],
178
- ) => (e: NativeSyntheticEvent<Event>) => void;
179
- export type FocusedInputTextHandlerHook<TContext, Event> = (
180
- handlers: {
181
- onFocusedInputTextChanged?: (
182
- e: FocusedInputTextChangedEvent,
183
- context: TContext,
184
- ) => void;
185
- },
186
- dependencies?: unknown[],
187
- ) => (e: NativeSyntheticEvent<Event>) => void;
188
- export type FocusedInputSelectionHandlerHook<TContext, Event> = (
189
- handlers: {
190
- onFocusedInputSelectionChanged?: (
191
- e: FocusedInputSelectionChangedEvent,
192
- context: TContext,
193
- ) => void;
194
- },
195
- dependencies?: unknown[],
196
- ) => (e: NativeSyntheticEvent<Event>) => void;
197
-
198
- // package types
199
- export type Handlers<T> = Record<string, T | undefined>;
200
- export type KeyboardHandler = Partial<{
201
- onStart: (e: NativeEvent) => void;
202
- onMove: (e: NativeEvent) => void;
203
- onEnd: (e: NativeEvent) => void;
204
- onInteractive: (e: NativeEvent) => void;
205
- }>;
206
- export type KeyboardHandlers = Handlers<KeyboardHandler>;
207
- export type FocusedInputHandler = Partial<{
208
- onChangeText: (e: FocusedInputTextChangedEvent) => void;
209
- onSelectionChange: (e: FocusedInputSelectionChangedEvent) => void;
210
- }>;
211
- export type FocusedInputHandlers = Handlers<FocusedInputHandler>;
1
+ import type {
2
+ EmitterSubscription,
3
+ NativeSyntheticEvent,
4
+ ViewProps,
5
+ } from "react-native";
6
+
7
+ // DirectEventHandler events declaration
8
+ export type NativeEvent = {
9
+ progress: number;
10
+ height: number;
11
+ duration: number;
12
+ target: number;
13
+ };
14
+ export type FocusedInputLayoutChangedEvent = {
15
+ target: number;
16
+ parentScrollViewTarget: number;
17
+ layout: {
18
+ x: number;
19
+ y: number;
20
+ width: number;
21
+ height: number;
22
+ absoluteX: number;
23
+ absoluteY: number;
24
+ };
25
+ };
26
+ export type FocusedInputTextChangedEvent = {
27
+ text: string;
28
+ };
29
+ export type FocusedInputSelectionChangedEvent = {
30
+ target: number;
31
+ selection: {
32
+ start: {
33
+ x: number;
34
+ y: number;
35
+ position: number;
36
+ };
37
+ end: {
38
+ x: number;
39
+ y: number;
40
+ position: number;
41
+ };
42
+ };
43
+ };
44
+ export type EventWithName<T> = {
45
+ eventName: string;
46
+ } & T;
47
+
48
+ // native View/Module declarations
49
+ export type KeyboardControllerProps = {
50
+ // callback props
51
+ onKeyboardMoveStart?: (
52
+ e: NativeSyntheticEvent<EventWithName<NativeEvent>>,
53
+ ) => void;
54
+ onKeyboardMove?: (
55
+ e: NativeSyntheticEvent<EventWithName<NativeEvent>>,
56
+ ) => void;
57
+ onKeyboardMoveEnd?: (
58
+ e: NativeSyntheticEvent<EventWithName<NativeEvent>>,
59
+ ) => void;
60
+ onKeyboardMoveInteractive?: (
61
+ e: NativeSyntheticEvent<EventWithName<NativeEvent>>,
62
+ ) => void;
63
+ onFocusedInputLayoutChanged?: (
64
+ e: NativeSyntheticEvent<EventWithName<FocusedInputLayoutChangedEvent>>,
65
+ ) => void;
66
+ onFocusedInputTextChanged?: (
67
+ e: NativeSyntheticEvent<EventWithName<FocusedInputTextChangedEvent>>,
68
+ ) => void;
69
+ onFocusedInputSelectionChanged?: (
70
+ e: NativeSyntheticEvent<EventWithName<FocusedInputSelectionChangedEvent>>,
71
+ ) => void;
72
+ // fake props used to activate reanimated bindings
73
+ onKeyboardMoveReanimated?: (
74
+ e: NativeSyntheticEvent<EventWithName<NativeEvent>>,
75
+ ) => void;
76
+ onFocusedInputLayoutChangedReanimated?: (
77
+ e: NativeSyntheticEvent<EventWithName<FocusedInputLayoutChangedEvent>>,
78
+ ) => void;
79
+ onFocusedInputTextChangedReanimated?: (
80
+ e: NativeSyntheticEvent<EventWithName<FocusedInputTextChangedEvent>>,
81
+ ) => void;
82
+ onFocusedInputSelectionChangedReanimated?: (
83
+ e: NativeSyntheticEvent<EventWithName<FocusedInputSelectionChangedEvent>>,
84
+ ) => void;
85
+ // props
86
+ statusBarTranslucent?: boolean;
87
+ navigationBarTranslucent?: boolean;
88
+ enabled?: boolean;
89
+ } & ViewProps;
90
+
91
+ export type KeyboardGestureAreaProps = {
92
+ interpolator: "ios" | "linear";
93
+ /**
94
+ * Whether to allow to show a keyboard from dismissed state by swipe up.
95
+ * Default to `false`.
96
+ */
97
+ showOnSwipeUp?: boolean;
98
+ /**
99
+ * Whether to allow to control a keyboard by gestures. The strategy how
100
+ * it should be controlled is determined by `interpolator` property.
101
+ * Defaults to `true`.
102
+ */
103
+ enableSwipeToDismiss?: boolean;
104
+ } & ViewProps;
105
+
106
+ export type Direction = "next" | "prev" | "current";
107
+ export type KeyboardControllerModule = {
108
+ // android only
109
+ setDefaultMode: () => void;
110
+ setInputMode: (mode: number) => void;
111
+ // all platforms
112
+ dismiss: () => void;
113
+ setFocusTo: (direction: Direction) => void;
114
+ // native event module stuff
115
+ addListener: (eventName: string) => void;
116
+ removeListeners: (count: number) => void;
117
+ };
118
+
119
+ // Event module declarations
120
+ export type KeyboardControllerEvents =
121
+ | "keyboardWillShow"
122
+ | "keyboardDidShow"
123
+ | "keyboardWillHide"
124
+ | "keyboardDidHide";
125
+ export type KeyboardEventData = {
126
+ height: number;
127
+ tag: number;
128
+ duration: number;
129
+ timestamp: number;
130
+ target: number;
131
+ };
132
+ export type KeyboardEventsModule = {
133
+ addListener: (
134
+ name: KeyboardControllerEvents,
135
+ cb: (e: KeyboardEventData) => void,
136
+ ) => EmitterSubscription;
137
+ };
138
+ export type FocusedInputAvailableEvents = "focusDidSet";
139
+ export type FocusedInputEventData = {
140
+ current: number;
141
+ count: number;
142
+ };
143
+ export type FocusedInputEventsModule = {
144
+ addListener: (
145
+ name: FocusedInputAvailableEvents,
146
+ cb: (e: FocusedInputEventData) => void,
147
+ ) => EmitterSubscription;
148
+ };
149
+ export type WindowDimensionsAvailableEvents = "windowDidResize";
150
+ export type WindowDimensionsEventData = {
151
+ width: number;
152
+ height: number;
153
+ };
154
+ export type WindowDimensionsEventsModule = {
155
+ addListener: (
156
+ name: WindowDimensionsAvailableEvents,
157
+ cb: (e: WindowDimensionsEventData) => void,
158
+ ) => EmitterSubscription;
159
+ };
160
+
161
+ // reanimated hook declaration
162
+ export type KeyboardHandlerHook<TContext, Event> = (
163
+ handlers: {
164
+ onKeyboardMoveStart?: (e: NativeEvent, context: TContext) => void;
165
+ onKeyboardMove?: (e: NativeEvent, context: TContext) => void;
166
+ onKeyboardMoveEnd?: (e: NativeEvent, context: TContext) => void;
167
+ onKeyboardMoveInteractive?: (e: NativeEvent, context: TContext) => void;
168
+ },
169
+ dependencies?: unknown[],
170
+ ) => (e: NativeSyntheticEvent<Event>) => void;
171
+ export type FocusedInputLayoutHandlerHook<TContext, Event> = (
172
+ handlers: {
173
+ onFocusedInputLayoutChanged?: (
174
+ e: FocusedInputLayoutChangedEvent,
175
+ context: TContext,
176
+ ) => void;
177
+ },
178
+ dependencies?: unknown[],
179
+ ) => (e: NativeSyntheticEvent<Event>) => void;
180
+ export type FocusedInputTextHandlerHook<TContext, Event> = (
181
+ handlers: {
182
+ onFocusedInputTextChanged?: (
183
+ e: FocusedInputTextChangedEvent,
184
+ context: TContext,
185
+ ) => void;
186
+ },
187
+ dependencies?: unknown[],
188
+ ) => (e: NativeSyntheticEvent<Event>) => void;
189
+ export type FocusedInputSelectionHandlerHook<TContext, Event> = (
190
+ handlers: {
191
+ onFocusedInputSelectionChanged?: (
192
+ e: FocusedInputSelectionChangedEvent,
193
+ context: TContext,
194
+ ) => void;
195
+ },
196
+ dependencies?: unknown[],
197
+ ) => (e: NativeSyntheticEvent<Event>) => void;
198
+
199
+ // package types
200
+ export type Handlers<T> = Record<string, T | undefined>;
201
+ export type KeyboardHandler = Partial<{
202
+ onStart: (e: NativeEvent) => void;
203
+ onMove: (e: NativeEvent) => void;
204
+ onEnd: (e: NativeEvent) => void;
205
+ onInteractive: (e: NativeEvent) => void;
206
+ }>;
207
+ export type KeyboardHandlers = Handlers<KeyboardHandler>;
208
+ export type FocusedInputHandler = Partial<{
209
+ onChangeText: (e: FocusedInputTextChangedEvent) => void;
210
+ onSelectionChange: (e: FocusedInputSelectionChangedEvent) => void;
211
+ }>;
212
+ export type FocusedInputHandlers = Handlers<FocusedInputHandler>;
package/src/utils.ts CHANGED
@@ -1 +1 @@
1
- export const uuid = () => Math.random().toString(36).slice(-6);
1
+ export const uuid = () => Math.random().toString(36).slice(-6);
@@ -1,61 +0,0 @@
1
- require "json"
2
-
3
- package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
-
5
- folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
6
-
7
- new_arch_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1'
8
-
9
- Pod::Spec.new do |s|
10
- s.name = "react-native-keyboard-controller"
11
- s.version = package["version"]
12
- s.summary = package["description"]
13
- s.homepage = package["homepage"]
14
- s.license = package["license"]
15
- s.authors = package["author"]
16
-
17
- s.platforms = { :ios => "11.0" }
18
- s.source = { :git => "https://github.com/kirillzyusko/react-native-keyboard-controller.git", :tag => "#{s.version}" }
19
-
20
- s.source_files = "ios/**/*.{h,m,mm,swift}"
21
- s.exclude_files = "ios/KeyboardControllerNative/**/*"
22
- s.public_header_files = "ios/**/*.h"
23
-
24
- # This guard prevent to install the dependencies when we run `pod install` in the old architecture.
25
- if new_arch_enabled then
26
- s.pod_target_xcconfig = {
27
- # This is handy when we want to detect if new arch is enabled in Swift code
28
- # and can be used like:
29
- # #if KEYBOARD_CONTROLLER_NEW_ARCH_ENABLED
30
- # // do sth when new arch is enabled
31
- # #else
32
- # // do sth when old arch is enabled
33
- # #endif
34
- "OTHER_SWIFT_FLAGS" => "-DKEYBOARD_CONTROLLER_NEW_ARCH_ENABLED"
35
- }
36
- end
37
-
38
- # install_modules_dependencies has been defined since React Native 71
39
- if defined?(install_modules_dependencies)
40
- install_modules_dependencies(s)
41
- else
42
- s.dependency 'React-Core'
43
-
44
- # This guard prevent to install the dependencies when we run `pod install` in the old architecture.
45
- if new_arch_enabled then
46
- s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
47
- s.pod_target_xcconfig = s.pod_target_xcconfig | {
48
- "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
49
- "OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1",
50
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
51
- }
52
-
53
- s.dependency "React-RCTFabric"
54
- s.dependency "React-Codegen"
55
- s.dependency "RCT-Folly"
56
- s.dependency "RCTRequired"
57
- s.dependency "RCTTypeSafety"
58
- s.dependency "ReactCommon/turbomodule/core"
59
- end
60
- end
61
- end