@codeleap/mobile 1.9.33 → 2.0.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 (413) hide show
  1. package/dist/components/ActionIcon/index.d.ts +13 -0
  2. package/dist/components/ActionIcon/index.js +54 -0
  3. package/dist/components/ActionIcon/index.js.map +1 -0
  4. package/dist/components/ActionIcon/styles.d.ts +64 -0
  5. package/dist/components/ActionIcon/styles.js +57 -0
  6. package/dist/components/ActionIcon/styles.js.map +1 -0
  7. package/dist/components/{ActivityIndicator.d.ts → ActivityIndicator/index.d.ts} +4 -2
  8. package/dist/components/{ActivityIndicator.js → ActivityIndicator/index.js} +5 -1
  9. package/dist/components/ActivityIndicator/index.js.map +1 -0
  10. package/dist/components/ActivityIndicator/styles.d.ts +59 -0
  11. package/dist/components/ActivityIndicator/styles.js +52 -0
  12. package/dist/components/ActivityIndicator/styles.js.map +1 -0
  13. package/dist/components/AutoComplete/index.d.ts +33 -0
  14. package/dist/components/AutoComplete/index.js +129 -0
  15. package/dist/components/AutoComplete/index.js.map +1 -0
  16. package/dist/components/AutoComplete/styles.d.ts +57 -0
  17. package/dist/components/AutoComplete/styles.js +28 -0
  18. package/dist/components/AutoComplete/styles.js.map +1 -0
  19. package/dist/components/Backdrop/index.d.ts +14 -0
  20. package/dist/components/{Backdrop.js → Backdrop/index.js} +21 -30
  21. package/dist/components/Backdrop/index.js.map +1 -0
  22. package/dist/components/{Backdrop.d.ts → Backdrop/styles.d.ts} +7 -20
  23. package/dist/components/Backdrop/styles.js +28 -0
  24. package/dist/components/Backdrop/styles.js.map +1 -0
  25. package/dist/components/Button/index.d.ts +247 -0
  26. package/dist/components/{Button.js → Button/index.js} +45 -11
  27. package/dist/components/Button/index.js.map +1 -0
  28. package/dist/components/{NewPager → Button}/styles.d.ts +59 -86
  29. package/dist/components/Button/styles.js +59 -0
  30. package/dist/components/Button/styles.js.map +1 -0
  31. package/dist/components/Calendar/index.d.ts +15 -0
  32. package/dist/components/Calendar/index.js +80 -0
  33. package/dist/components/Calendar/index.js.map +1 -0
  34. package/dist/components/Calendar/style.d.ts +4 -0
  35. package/dist/components/Calendar/style.js +36 -0
  36. package/dist/components/Calendar/style.js.map +1 -0
  37. package/dist/components/Calendar/types.d.ts +95 -0
  38. package/dist/components/Calendar/types.js +3 -0
  39. package/dist/components/Calendar/types.js.map +1 -0
  40. package/dist/components/Checkbox/index.d.ts +2 -2
  41. package/dist/components/Checkbox/index.js +1 -1
  42. package/dist/components/Checkbox/index.js.map +1 -1
  43. package/dist/components/Checkbox/styles.d.ts +52 -52
  44. package/dist/components/Checkbox/styles.js +2 -2
  45. package/dist/components/Checkbox/styles.js.map +1 -1
  46. package/dist/components/{ContentView.d.ts → ContentView/index.d.ts} +5 -3
  47. package/dist/components/{ContentView.js → ContentView/index.js} +19 -4
  48. package/dist/components/ContentView/index.js.map +1 -0
  49. package/dist/components/ContentView/styles.d.ts +53 -0
  50. package/dist/components/ContentView/styles.js +26 -0
  51. package/dist/components/ContentView/styles.js.map +1 -0
  52. package/dist/components/Drawer/index.d.ts +7 -0
  53. package/dist/components/{View.js → Drawer/index.js} +18 -15
  54. package/dist/components/Drawer/index.js.map +1 -0
  55. package/dist/components/{NewModal → Drawer}/styles.d.ts +55 -56
  56. package/dist/components/Drawer/styles.js +37 -0
  57. package/dist/components/Drawer/styles.js.map +1 -0
  58. package/dist/components/{EmptyPlaceholder.d.ts → EmptyPlaceholder/index.d.ts} +4 -2
  59. package/dist/components/{EmptyPlaceholder.js → EmptyPlaceholder/index.js} +9 -5
  60. package/dist/components/EmptyPlaceholder/index.js.map +1 -0
  61. package/dist/components/EmptyPlaceholder/styles.d.ts +55 -0
  62. package/dist/components/EmptyPlaceholder/styles.js +32 -0
  63. package/dist/components/EmptyPlaceholder/styles.js.map +1 -0
  64. package/dist/components/{FileInput.d.ts → FileInput/index.d.ts} +8 -6
  65. package/dist/components/{FileInput.js → FileInput/index.js} +13 -30
  66. package/dist/components/FileInput/index.js.map +1 -0
  67. package/dist/components/FileInput/styles.d.ts +53 -0
  68. package/dist/components/FileInput/styles.js +19 -0
  69. package/dist/components/FileInput/styles.js.map +1 -0
  70. package/dist/components/Grid/index.d.ts +30 -0
  71. package/dist/components/Grid/index.js +69 -0
  72. package/dist/components/Grid/index.js.map +1 -0
  73. package/dist/components/Grid/styles.d.ts +5 -0
  74. package/dist/components/Grid/styles.js +19 -0
  75. package/dist/components/Grid/styles.js.map +1 -0
  76. package/dist/components/{Icon.d.ts → Icon/index.d.ts} +3 -1
  77. package/dist/components/{Icon.js → Icon/index.js} +6 -2
  78. package/dist/components/Icon/index.js.map +1 -0
  79. package/dist/components/Icon/styles.d.ts +60 -0
  80. package/dist/components/Icon/styles.js +45 -0
  81. package/dist/components/Icon/styles.js.map +1 -0
  82. package/dist/components/{Image.d.ts → Image/index.d.ts} +6 -4
  83. package/dist/components/{Image.js → Image/index.js} +35 -7
  84. package/dist/components/Image/index.js.map +1 -0
  85. package/dist/components/Image/styles.d.ts +54 -0
  86. package/dist/components/Image/styles.js +25 -0
  87. package/dist/components/Image/styles.js.map +1 -0
  88. package/dist/components/ImageView/Spotlight.d.ts +25 -0
  89. package/dist/components/ImageView/Spotlight.js +155 -0
  90. package/dist/components/ImageView/Spotlight.js.map +1 -0
  91. package/dist/components/ImageView/component.d.ts +5 -0
  92. package/dist/components/ImageView/component.js +54 -0
  93. package/dist/components/ImageView/component.js.map +1 -0
  94. package/dist/components/ImageView/index.d.ts +2 -0
  95. package/dist/components/ImageView/index.js +19 -0
  96. package/dist/components/ImageView/index.js.map +1 -0
  97. package/dist/components/List/PaginationIndicator.d.ts +67 -0
  98. package/dist/components/List/PaginationIndicator.js +51 -0
  99. package/dist/components/List/PaginationIndicator.js.map +1 -0
  100. package/dist/components/{List.d.ts → List/index.d.ts} +12 -15
  101. package/dist/components/List/index.js +68 -0
  102. package/dist/components/List/index.js.map +1 -0
  103. package/dist/components/List/styles.d.ts +5 -0
  104. package/dist/components/List/styles.js +24 -0
  105. package/dist/components/List/styles.js.map +1 -0
  106. package/dist/components/Modal/index.d.ts +13 -3
  107. package/dist/components/Modal/index.js +23 -8
  108. package/dist/components/Modal/index.js.map +1 -1
  109. package/dist/components/Modal/styles.d.ts +55 -55
  110. package/dist/components/Modal/styles.js +4 -3
  111. package/dist/components/Modal/styles.js.map +1 -1
  112. package/dist/components/MultiSelect/index.d.ts +6 -0
  113. package/dist/components/MultiSelect/index.js +106 -0
  114. package/dist/components/MultiSelect/index.js.map +1 -0
  115. package/dist/components/MultiSelect/styles.d.ts +58 -0
  116. package/dist/components/MultiSelect/styles.js +25 -0
  117. package/dist/components/MultiSelect/styles.js.map +1 -0
  118. package/dist/components/MultiSelect/types.d.ts +32 -0
  119. package/dist/components/MultiSelect/types.js +3 -0
  120. package/dist/components/MultiSelect/types.js.map +1 -0
  121. package/dist/components/Navigation/Navigation.js +1 -5
  122. package/dist/components/Navigation/Navigation.js.map +1 -1
  123. package/dist/components/Pager/index.d.ts +18 -12
  124. package/dist/components/Pager/index.js +54 -134
  125. package/dist/components/Pager/index.js.map +1 -1
  126. package/dist/components/Pager/styles.d.ts +42 -9
  127. package/dist/components/Pager/styles.js +53 -27
  128. package/dist/components/Pager/styles.js.map +1 -1
  129. package/dist/components/RadioInput/index.d.ts +4 -4
  130. package/dist/components/RadioInput/index.js.map +1 -1
  131. package/dist/components/RadioInput/styles.d.ts +53 -53
  132. package/dist/components/RadioInput/styles.js +11 -7
  133. package/dist/components/RadioInput/styles.js.map +1 -1
  134. package/dist/components/Scroll/index.d.ts +18 -0
  135. package/dist/components/{Scroll.js → Scroll/index.js} +14 -11
  136. package/dist/components/Scroll/index.js.map +1 -0
  137. package/dist/components/Scroll/styles.d.ts +4 -0
  138. package/dist/components/Scroll/styles.js +27 -0
  139. package/dist/components/Scroll/styles.js.map +1 -0
  140. package/dist/components/Sections/index.d.ts +11 -0
  141. package/dist/components/{Sections.js → Sections/index.js} +4 -5
  142. package/dist/components/Sections/index.js.map +1 -0
  143. package/dist/components/SegmentedControl/index.js.map +1 -1
  144. package/dist/components/SegmentedControl/styles.d.ts +6 -6
  145. package/dist/components/Select/index.d.ts +8 -0
  146. package/dist/components/Select/index.js +38 -80
  147. package/dist/components/Select/index.js.map +1 -1
  148. package/dist/components/Select/styles.d.ts +57 -7
  149. package/dist/components/Select/styles.js +14 -41
  150. package/dist/components/Select/styles.js.map +1 -1
  151. package/dist/components/Select/types.d.ts +16 -25
  152. package/dist/components/Slider/index.d.ts +1 -0
  153. package/dist/components/Slider/index.js +4 -0
  154. package/dist/components/Slider/index.js.map +1 -1
  155. package/dist/components/Slider/styles.d.ts +53 -0
  156. package/dist/components/Slider/styles.js +61 -0
  157. package/dist/components/Slider/styles.js.map +1 -0
  158. package/dist/components/Slider/types.d.ts +3 -2
  159. package/dist/components/{Switch.d.ts → Switch/index.d.ts} +3 -2
  160. package/dist/components/{Switch.js → Switch/index.js} +8 -4
  161. package/dist/components/Switch/index.js.map +1 -0
  162. package/dist/components/Switch/styles.d.ts +54 -0
  163. package/dist/components/Switch/styles.js +34 -0
  164. package/dist/components/Switch/styles.js.map +1 -0
  165. package/dist/components/{Text.d.ts → Text/index.d.ts} +5 -3
  166. package/dist/components/{Text.js → Text/index.js} +7 -3
  167. package/dist/components/Text/index.js.map +1 -0
  168. package/dist/components/Text/styles.d.ts +65 -0
  169. package/dist/components/Text/styles.js +23 -0
  170. package/dist/components/Text/styles.js.map +1 -0
  171. package/dist/components/TextInput/Label.d.ts +9 -0
  172. package/dist/components/TextInput/Label.js +34 -0
  173. package/dist/components/TextInput/Label.js.map +1 -0
  174. package/dist/components/{TextInput.d.ts → TextInput/index.d.ts} +34 -41
  175. package/dist/components/{TextInput.js → TextInput/index.js} +51 -48
  176. package/dist/components/TextInput/index.js.map +1 -0
  177. package/dist/components/TextInput/styles.d.ts +62 -0
  178. package/dist/components/TextInput/styles.js +60 -0
  179. package/dist/components/TextInput/styles.js.map +1 -0
  180. package/dist/components/{Touchable.d.ts → Touchable/index.d.ts} +8 -4
  181. package/dist/components/{Touchable.js → Touchable/index.js} +59 -12
  182. package/dist/components/Touchable/index.js.map +1 -0
  183. package/dist/components/Touchable/styles.d.ts +53 -0
  184. package/dist/components/Touchable/styles.js +19 -0
  185. package/dist/components/Touchable/styles.js.map +1 -0
  186. package/dist/components/{View.d.ts → View/index.d.ts} +6 -0
  187. package/dist/components/View/index.js +99 -0
  188. package/dist/components/View/index.js.map +1 -0
  189. package/dist/components/View/styles.d.ts +54 -0
  190. package/dist/components/View/styles.js +29 -0
  191. package/dist/components/View/styles.js.map +1 -0
  192. package/dist/components/components.d.ts +10 -3
  193. package/dist/components/components.js +23 -3
  194. package/dist/components/components.js.map +1 -1
  195. package/dist/components/defaultStyles.d.ts +1364 -0
  196. package/dist/components/defaultStyles.js +63 -0
  197. package/dist/components/defaultStyles.js.map +1 -0
  198. package/dist/components/{_Modal → legacy/Modal}/index.d.ts +3 -3
  199. package/dist/components/{_Modal → legacy/Modal}/index.js +6 -6
  200. package/dist/components/legacy/Modal/index.js.map +1 -0
  201. package/dist/components/{_Modal → legacy/Modal}/styles.d.ts +6 -6
  202. package/dist/components/{_Modal → legacy/Modal}/styles.js +0 -0
  203. package/dist/components/legacy/Modal/styles.js.map +1 -0
  204. package/dist/components/legacy/Pager/index.d.ts +20 -0
  205. package/dist/components/legacy/Pager/index.js +168 -0
  206. package/dist/components/legacy/Pager/index.js.map +1 -0
  207. package/dist/components/legacy/Pager/styles.d.ts +54 -0
  208. package/dist/components/legacy/Pager/styles.js +44 -0
  209. package/dist/components/legacy/Pager/styles.js.map +1 -0
  210. package/dist/components/legacy/index.d.ts +2 -0
  211. package/dist/components/legacy/index.js +19 -0
  212. package/dist/components/legacy/index.js.map +1 -0
  213. package/dist/index.d.ts +4 -6
  214. package/dist/index.js +6 -9
  215. package/dist/index.js.map +1 -1
  216. package/dist/modules/reactNavigation.d.ts +2 -0
  217. package/dist/modules/reactNavigation.js +16 -1
  218. package/dist/modules/reactNavigation.js.map +1 -1
  219. package/dist/modules/textInputMask.d.ts +1 -0
  220. package/dist/modules/textInputMask.js +15 -0
  221. package/dist/modules/textInputMask.js.map +1 -1
  222. package/dist/types/index.d.ts +1 -0
  223. package/dist/types/index.js +18 -0
  224. package/dist/types/index.js.map +1 -0
  225. package/dist/utils/KeyboardAware/index.d.ts +6 -0
  226. package/dist/utils/KeyboardAware/index.js +31 -0
  227. package/dist/utils/KeyboardAware/index.js.map +1 -0
  228. package/dist/utils/KeyboardAware/lib/KeyboardAwareFlatList.d.ts +3 -0
  229. package/dist/utils/KeyboardAware/lib/KeyboardAwareFlatList.js +9 -0
  230. package/dist/utils/KeyboardAware/lib/KeyboardAwareFlatList.js.map +1 -0
  231. package/dist/utils/KeyboardAware/lib/KeyboardAwareHOC.d.ts +65 -0
  232. package/dist/utils/KeyboardAware/lib/KeyboardAwareHOC.js +450 -0
  233. package/dist/utils/KeyboardAware/lib/KeyboardAwareHOC.js.map +1 -0
  234. package/dist/utils/KeyboardAware/lib/KeyboardAwareInterface.d.ts +7 -0
  235. package/dist/utils/KeyboardAware/lib/KeyboardAwareInterface.js +4 -0
  236. package/dist/utils/KeyboardAware/lib/KeyboardAwareInterface.js.map +1 -0
  237. package/dist/utils/KeyboardAware/lib/KeyboardAwareScrollView.d.ts +3 -0
  238. package/dist/utils/KeyboardAware/lib/KeyboardAwareScrollView.js +10 -0
  239. package/dist/utils/KeyboardAware/lib/KeyboardAwareScrollView.js.map +1 -0
  240. package/dist/utils/KeyboardAware/lib/KeyboardAwareSectionList.d.ts +3 -0
  241. package/dist/utils/KeyboardAware/lib/KeyboardAwareSectionList.js +10 -0
  242. package/dist/utils/KeyboardAware/lib/KeyboardAwareSectionList.js.map +1 -0
  243. package/dist/utils/KeyboardAware/types.d.ts +1 -0
  244. package/dist/utils/KeyboardAware/types.js +7 -0
  245. package/dist/utils/KeyboardAware/types.js.map +1 -0
  246. package/dist/utils/ModalManager/components.d.ts +10 -2
  247. package/dist/utils/ModalManager/components.js +39 -7
  248. package/dist/utils/ModalManager/components.js.map +1 -1
  249. package/dist/utils/ModalManager/context.d.ts +1 -0
  250. package/dist/utils/ModalManager/context.js +6 -0
  251. package/dist/utils/ModalManager/context.js.map +1 -1
  252. package/dist/utils/ModalManager/index.d.ts +3 -2
  253. package/dist/utils/ModalManager/index.js +1 -0
  254. package/dist/utils/ModalManager/index.js.map +1 -1
  255. package/dist/utils/PermissionManager/context.js +0 -7
  256. package/dist/utils/PermissionManager/context.js.map +1 -1
  257. package/dist/utils/index.d.ts +8 -0
  258. package/dist/utils/index.js +42 -0
  259. package/dist/utils/index.js.map +1 -0
  260. package/dist/utils/misc.d.ts +5 -1
  261. package/dist/utils/misc.js +62 -1
  262. package/dist/utils/misc.js.map +1 -1
  263. package/dist/utils/notifications.d.ts +34 -0
  264. package/dist/utils/notifications.js +268 -0
  265. package/dist/utils/notifications.js.map +1 -0
  266. package/package.json +13 -4
  267. package/src/components/ActionIcon/index.tsx +31 -0
  268. package/src/components/ActionIcon/styles.ts +92 -0
  269. package/src/components/{ActivityIndicator.tsx → ActivityIndicator/index.tsx} +7 -3
  270. package/src/components/ActivityIndicator/styles.ts +68 -0
  271. package/src/components/AutoComplete/index.tsx +158 -0
  272. package/src/components/AutoComplete/styles.ts +49 -0
  273. package/src/components/{Backdrop.tsx → Backdrop/index.tsx} +9 -42
  274. package/src/components/Backdrop/styles.ts +33 -0
  275. package/src/components/{Button.tsx → Button/index.tsx} +64 -11
  276. package/src/components/Button/styles.ts +105 -0
  277. package/src/components/Calendar/index.tsx +65 -0
  278. package/src/components/Calendar/style.ts +35 -0
  279. package/src/components/Calendar/types.ts +102 -0
  280. package/src/components/Checkbox/index.tsx +6 -4
  281. package/src/components/Checkbox/styles.ts +3 -3
  282. package/src/components/{ContentView.tsx → ContentView/index.tsx} +11 -6
  283. package/src/components/ContentView/styles.ts +25 -0
  284. package/src/components/Drawer/index.tsx +24 -0
  285. package/src/components/Drawer/styles.ts +38 -0
  286. package/src/components/{EmptyPlaceholder.tsx → EmptyPlaceholder/index.tsx} +14 -7
  287. package/src/components/EmptyPlaceholder/styles.ts +58 -0
  288. package/src/components/{FileInput.tsx → FileInput/index.tsx} +19 -28
  289. package/src/components/FileInput/styles.ts +15 -0
  290. package/src/components/Grid/index.tsx +107 -0
  291. package/src/components/Grid/styles.ts +11 -0
  292. package/src/components/{Icon.tsx → Icon/index.tsx} +8 -3
  293. package/src/components/Icon/styles.ts +52 -0
  294. package/src/components/Image/index.tsx +88 -0
  295. package/src/components/Image/styles.ts +20 -0
  296. package/src/components/ImageView/Spotlight.tsx +158 -0
  297. package/src/components/ImageView/component.tsx +38 -0
  298. package/src/components/ImageView/index.ts +2 -0
  299. package/src/components/List/PaginationIndicator.tsx +71 -0
  300. package/src/components/List/index.tsx +108 -0
  301. package/src/components/List/styles.ts +15 -0
  302. package/src/components/Modal/index.tsx +75 -39
  303. package/src/components/Modal/styles.ts +7 -5
  304. package/src/components/MultiSelect/index.tsx +120 -0
  305. package/src/components/MultiSelect/styles.ts +25 -0
  306. package/src/components/MultiSelect/types.ts +39 -0
  307. package/src/components/Navigation/Navigation.tsx +1 -5
  308. package/src/components/Pager/index.tsx +81 -202
  309. package/src/components/Pager/styles.ts +58 -33
  310. package/src/components/RadioInput/index.tsx +5 -6
  311. package/src/components/RadioInput/styles.ts +8 -10
  312. package/src/components/{Scroll.tsx → Scroll/index.tsx} +22 -24
  313. package/src/components/Scroll/styles.ts +18 -0
  314. package/src/components/{Sections.tsx → Sections/index.tsx} +5 -15
  315. package/src/components/SegmentedControl/index.tsx +1 -1
  316. package/src/components/Select/index.tsx +74 -139
  317. package/src/components/Select/styles.ts +42 -74
  318. package/src/components/Select/types.ts +16 -23
  319. package/src/components/Slider/index.tsx +2 -0
  320. package/src/components/Slider/styles.ts +75 -0
  321. package/src/components/Slider/types.ts +7 -2
  322. package/src/components/{Switch.tsx → Switch/index.tsx} +9 -4
  323. package/src/components/Switch/styles.ts +37 -0
  324. package/src/components/{Text.tsx → Text/index.tsx} +7 -3
  325. package/src/components/Text/styles.ts +34 -0
  326. package/src/components/TextInput/Label.tsx +26 -0
  327. package/src/components/{TextInput.tsx → TextInput/index.tsx} +84 -70
  328. package/src/components/TextInput/styles.ts +120 -0
  329. package/src/components/Touchable/index.tsx +133 -0
  330. package/src/components/Touchable/styles.ts +16 -0
  331. package/src/components/View/index.tsx +89 -0
  332. package/src/components/View/styles.ts +24 -0
  333. package/src/components/components.ts +14 -4
  334. package/src/components/defaultStyles.ts +60 -0
  335. package/src/components/{_Modal → legacy/Modal}/index.tsx +7 -7
  336. package/src/components/{_Modal → legacy/Modal}/styles.ts +0 -0
  337. package/src/components/legacy/Pager/index.tsx +242 -0
  338. package/src/components/legacy/Pager/styles.ts +51 -0
  339. package/src/components/legacy/index.ts +2 -0
  340. package/src/index.ts +4 -9
  341. package/src/modules/reactNavigation.ts +11 -0
  342. package/src/modules/textInputMask.ts +2 -0
  343. package/src/types/index.ts +1 -0
  344. package/src/utils/KeyboardAware/index.ts +15 -0
  345. package/src/utils/KeyboardAware/lib/KeyboardAwareFlatList.ts +4 -0
  346. package/src/utils/KeyboardAware/lib/KeyboardAwareHOC.tsx +608 -0
  347. package/src/utils/KeyboardAware/lib/KeyboardAwareInterface.ts +13 -0
  348. package/src/utils/KeyboardAware/lib/KeyboardAwareScrollView.ts +6 -0
  349. package/src/utils/KeyboardAware/lib/KeyboardAwareSectionList.ts +6 -0
  350. package/src/utils/KeyboardAware/types.ts +159 -0
  351. package/src/utils/ModalManager/components.tsx +57 -14
  352. package/src/utils/ModalManager/context.tsx +10 -0
  353. package/src/utils/ModalManager/index.ts +4 -1
  354. package/src/utils/PermissionManager/context.tsx +1 -7
  355. package/src/utils/index.ts +9 -0
  356. package/src/utils/misc.ts +61 -2
  357. package/src/utils/notifications.ts +206 -0
  358. package/dist/components/ActivityIndicator.js.map +0 -1
  359. package/dist/components/Backdrop.js.map +0 -1
  360. package/dist/components/Button.d.ts +0 -132
  361. package/dist/components/Button.js.map +0 -1
  362. package/dist/components/ContentView.js.map +0 -1
  363. package/dist/components/EmptyPlaceholder.js.map +0 -1
  364. package/dist/components/FileInput.js.map +0 -1
  365. package/dist/components/Gap.d.ts +0 -8
  366. package/dist/components/Gap.js +0 -60
  367. package/dist/components/Gap.js.map +0 -1
  368. package/dist/components/Icon.js.map +0 -1
  369. package/dist/components/Image.js.map +0 -1
  370. package/dist/components/List.js +0 -101
  371. package/dist/components/List.js.map +0 -1
  372. package/dist/components/NewModal/index.d.ts +0 -27
  373. package/dist/components/NewModal/index.js +0 -99
  374. package/dist/components/NewModal/index.js.map +0 -1
  375. package/dist/components/NewModal/styles.js +0 -58
  376. package/dist/components/NewModal/styles.js.map +0 -1
  377. package/dist/components/NewPager/index.d.ts +0 -26
  378. package/dist/components/NewPager/index.js +0 -88
  379. package/dist/components/NewPager/index.js.map +0 -1
  380. package/dist/components/NewPager/styles.js +0 -70
  381. package/dist/components/NewPager/styles.js.map +0 -1
  382. package/dist/components/Overlay.d.ts +0 -16
  383. package/dist/components/Overlay.js +0 -74
  384. package/dist/components/Overlay.js.map +0 -1
  385. package/dist/components/Scroll.d.ts +0 -15
  386. package/dist/components/Scroll.js.map +0 -1
  387. package/dist/components/Sections.d.ts +0 -11
  388. package/dist/components/Sections.js.map +0 -1
  389. package/dist/components/SegmentedControl.d.ts +0 -5
  390. package/dist/components/SegmentedControl.js +0 -32
  391. package/dist/components/SegmentedControl.js.map +0 -1
  392. package/dist/components/Switch.js.map +0 -1
  393. package/dist/components/Text.js.map +0 -1
  394. package/dist/components/TextInput.js.map +0 -1
  395. package/dist/components/Touchable.js.map +0 -1
  396. package/dist/components/View.js.map +0 -1
  397. package/dist/components/_Modal/index.js.map +0 -1
  398. package/dist/components/_Modal/styles.js.map +0 -1
  399. package/dist/utils/PermissionManager/components.d.ts +0 -18
  400. package/dist/utils/PermissionManager/components.js +0 -52
  401. package/dist/utils/PermissionManager/components.js.map +0 -1
  402. package/dist/utils/styles.d.ts +0 -1
  403. package/dist/utils/styles.js +0 -13
  404. package/dist/utils/styles.js.map +0 -1
  405. package/src/components/Gap.tsx +0 -40
  406. package/src/components/Image.tsx +0 -62
  407. package/src/components/List.tsx +0 -155
  408. package/src/components/NewPager/index.tsx +0 -121
  409. package/src/components/NewPager/styles.ts +0 -76
  410. package/src/components/Overlay.tsx +0 -86
  411. package/src/components/Touchable.tsx +0 -89
  412. package/src/components/View.tsx +0 -48
  413. package/src/utils/styles.ts +0 -14
@@ -1,4 +1,15 @@
1
1
  // @ts-nocheck
2
+ import React from 'react'
2
3
  export { createStackNavigator } from '@react-navigation/stack'
3
4
  export { createDrawerNavigator } from '@react-navigation/drawer'
4
5
  export { createBottomTabNavigator } from '@react-navigation/bottom-tabs'
6
+ import { NavigationContainerRefContext, NavigationContext } from '@react-navigation/core'
7
+ export { useIsFocused } from '@react-navigation/native'
8
+
9
+ export function useNavigationContext() {
10
+ const root = React.useContext(NavigationContainerRefContext)
11
+ const navigation = React.useContext(NavigationContext)
12
+ if (!navigation && !root) return undefined
13
+
14
+ return (navigation ?? root) as unknown as T
15
+ }
@@ -7,3 +7,5 @@ import { TextInputMaskProps } from './types/textInputMask'
7
7
  export const MaskedTextInput = TextInputMask as unknown as React.ForwardRefExoticComponent<TextInputMaskProps & {
8
8
  ref?: any
9
9
  }>
10
+
11
+ export * from './types/textInputMask'
@@ -0,0 +1 @@
1
+ export * from './utility'
@@ -0,0 +1,15 @@
1
+ /* @flow */
2
+
3
+ import listenToKeyboardEvents from './lib/KeyboardAwareHOC'
4
+ import KeyboardAwareScrollView from './lib/KeyboardAwareScrollView'
5
+ import KeyboardAwareFlatList from './lib/KeyboardAwareFlatList'
6
+ import KeyboardAwareSectionList from './lib/KeyboardAwareSectionList'
7
+
8
+ export {
9
+ listenToKeyboardEvents,
10
+ KeyboardAwareFlatList,
11
+ KeyboardAwareSectionList,
12
+ KeyboardAwareScrollView,
13
+ }
14
+
15
+ export * from './types'
@@ -0,0 +1,4 @@
1
+ import { FlatList } from 'react-native'
2
+ import listenToKeyboardEvents from './KeyboardAwareHOC'
3
+
4
+ export default listenToKeyboardEvents(FlatList)
@@ -0,0 +1,608 @@
1
+ /* eslint-disable max-lines */
2
+ /* @flow */
3
+
4
+ import React from 'react'
5
+ import PropTypes from 'prop-types'
6
+ import {
7
+ Keyboard,
8
+ Platform,
9
+ UIManager,
10
+ TextInput,
11
+ findNodeHandle,
12
+ Animated,
13
+ Dimensions,
14
+ KeyboardEventName,
15
+ EventSubscription,
16
+ KeyboardEventListener,
17
+ NativeSyntheticEvent,
18
+ } from 'react-native'
19
+ import type { KeyboardAwareInterface } from './KeyboardAwareInterface'
20
+ export function isIphoneX() {
21
+ const dimen = Dimensions.get('window')
22
+ return (
23
+ Platform.OS === 'ios' &&
24
+ !Platform.isPad &&
25
+ !Platform.isTVOS &&
26
+ ((dimen.height === 780 || dimen.width === 780)
27
+ || (dimen.height === 812 || dimen.width === 812)
28
+ || (dimen.height === 844 || dimen.width === 844)
29
+ || (dimen.height === 896 || dimen.width === 896)
30
+ || (dimen.height === 926 || dimen.width === 926))
31
+ )
32
+ }
33
+
34
+ const _KAM_DEFAULT_TAB_BAR_HEIGHT: number = isIphoneX() ? 83 : 49
35
+ const _KAM_KEYBOARD_OPENING_TIME = 250
36
+ const _KAM_EXTRA_HEIGHT = 75
37
+
38
+ const supportedKeyboardEvents: KeyboardEventName[] = [
39
+ 'keyboardWillShow',
40
+ 'keyboardDidShow',
41
+ 'keyboardWillHide',
42
+ 'keyboardDidHide',
43
+ 'keyboardWillChangeFrame',
44
+ 'keyboardDidChangeFrame',
45
+ ]
46
+ const keyboardEventToCallbackName = (eventName: string) => 'on' + eventName[0].toUpperCase() + eventName.substring(1)
47
+ const keyboardEventPropTypes = supportedKeyboardEvents.reduce(
48
+ (acc: Object, eventName: string) => ({
49
+ ...acc,
50
+ [keyboardEventToCallbackName(eventName)]: PropTypes.func,
51
+ }),
52
+ {},
53
+ )
54
+ const keyboardAwareHOCTypeEvents = supportedKeyboardEvents.reduce(
55
+ (acc: Object, eventName: string) => ({
56
+ ...acc,
57
+ [keyboardEventToCallbackName(eventName)]: Function,
58
+ }),
59
+ {},
60
+ )
61
+
62
+ export type KeyboardAwareHOCProps = {
63
+ viewIsInsideTabBar?: boolean
64
+ resetScrollToCoords?: {
65
+ x: number
66
+ y: number
67
+ }
68
+ enableResetScrollToCoords?: boolean
69
+ enableAutomaticScroll?: boolean
70
+ extraHeight?: number
71
+ extraScrollHeight?: number
72
+ keyboardOpeningTime?: number
73
+ onScroll?: Function
74
+ update?: Function
75
+ contentContainerStyle?: any
76
+ enableOnAndroid?: boolean
77
+ innerRef?: Function
78
+ } & typeof keyboardAwareHOCTypeEvents
79
+ export type KeyboardAwareHOCState = {
80
+ keyboardSpace: number
81
+ }
82
+
83
+ export type ElementLayout = {
84
+ x: number
85
+ y: number
86
+ width: number
87
+ height: number
88
+ }
89
+
90
+ export type ContentOffset = {
91
+ x: number
92
+ y: number
93
+ }
94
+
95
+ export type ScrollPosition = {
96
+ x: number
97
+ y: number
98
+ animated: boolean
99
+ }
100
+
101
+ export type ScrollIntoViewOptions = {
102
+ getScrollPosition?: (
103
+ parentLayout: ElementLayout,
104
+ childLayout: ElementLayout,
105
+ contentOffset: ContentOffset
106
+ ) => ScrollPosition
107
+ }
108
+
109
+ export type KeyboardAwareHOCOptions = {
110
+ enableOnAndroid: boolean
111
+ contentContainerStyle?: Object
112
+ enableAutomaticScroll: boolean
113
+ extraHeight: number
114
+ extraScrollHeight: number
115
+ enableResetScrollToCoords: boolean
116
+ keyboardOpeningTime: number
117
+ viewIsInsideTabBar: boolean
118
+ refPropName: string
119
+ extractNativeRef: Function
120
+ }
121
+
122
+ function getDisplayName(WrappedComponent: React.ComponentClass) {
123
+ return (
124
+ (WrappedComponent &&
125
+ (WrappedComponent.displayName || WrappedComponent.name)) ||
126
+ 'Component'
127
+ )
128
+ }
129
+
130
+ const ScrollIntoViewDefaultOptions: KeyboardAwareHOCOptions = {
131
+ enableOnAndroid: false,
132
+ contentContainerStyle: undefined,
133
+ enableAutomaticScroll: true,
134
+ extraHeight: _KAM_EXTRA_HEIGHT,
135
+ extraScrollHeight: 0,
136
+ enableResetScrollToCoords: true,
137
+ keyboardOpeningTime: _KAM_KEYBOARD_OPENING_TIME,
138
+ viewIsInsideTabBar: false,
139
+
140
+ // The ref prop name that will be passed to the wrapped component to obtain a ref
141
+ // If your ScrollView is already wrapped, maybe the wrapper permit to get a ref
142
+ // For example, with glamorous-native ScrollView, you should use "innerRef"
143
+ refPropName: 'ref',
144
+ // Sometimes the ref you get is a ref to a wrapped view (ex: Animated.ScrollView)
145
+ // We need access to the imperative API of a real native ScrollView so we need extraction logic
146
+ extractNativeRef: (ref: any) => {
147
+ // getNode() permit to support Animated.ScrollView automatically, but is deprecated since RN 0.62
148
+ // see https://github.com/facebook/react-native/issues/19650
149
+ // see https://stackoverflow.com/questions/42051368/scrollto-is-undefined-on-animated-scrollview/48786374
150
+ // see https://github.com/facebook/react-native/commit/66e72bb4e00aafbcb9f450ed5db261d98f99f82a
151
+ const shouldCallGetNode = !Platform.constants || (Platform.constants.reactNativeVersion.major === 0 && Platform.constants.reactNativeVersion.minor < 62)
152
+ if (ref.getNode && shouldCallGetNode) {
153
+ return ref.getNode()
154
+ } else {
155
+ return ref
156
+ }
157
+ },
158
+ }
159
+
160
+ function KeyboardAwareHOC(
161
+ ScrollableComponent: React.ComponentClass<any>,
162
+ userOptions = ScrollIntoViewDefaultOptions,
163
+ ) {
164
+
165
+ const hocOptions: KeyboardAwareHOCOptions = {
166
+ ...ScrollIntoViewDefaultOptions,
167
+ ...userOptions,
168
+ }
169
+
170
+ return class extends React.Component<KeyboardAwareHOCProps, KeyboardAwareHOCState>
171
+ implements KeyboardAwareInterface {
172
+ _rnkasv_keyboardView: any
173
+
174
+ keyboardWillShowEvent: EventSubscription
175
+
176
+ keyboardWillHideEvent: EventSubscription
177
+
178
+ position: ContentOffset
179
+
180
+ defaultResetScrollToCoords?: { x: number; y: number }
181
+
182
+ mountedComponent: boolean
183
+
184
+ handleOnScroll: Function
185
+
186
+ callbacks: Record<string, EventSubscription>
187
+
188
+ state: KeyboardAwareHOCState
189
+
190
+ static displayName = `KeyboardAware${getDisplayName(ScrollableComponent)}`
191
+
192
+ static propTypes = {
193
+ viewIsInsideTabBar: PropTypes.bool,
194
+ resetScrollToCoords: PropTypes.shape({
195
+ x: PropTypes.number.isRequired,
196
+ y: PropTypes.number.isRequired,
197
+ }),
198
+ enableResetScrollToCoords: PropTypes.bool,
199
+ enableAutomaticScroll: PropTypes.bool,
200
+ extraHeight: PropTypes.number,
201
+ extraScrollHeight: PropTypes.number,
202
+ keyboardOpeningTime: PropTypes.number,
203
+ onScroll: PropTypes.oneOfType([
204
+ PropTypes.func, // Normal listener
205
+ PropTypes.object, // Animated.event listener
206
+ ]),
207
+ update: PropTypes.func,
208
+ contentContainerStyle: PropTypes.any,
209
+ enableOnAndroid: PropTypes.bool,
210
+ innerRef: PropTypes.func,
211
+ ...keyboardEventPropTypes,
212
+ }
213
+
214
+ // HOC options are used to init default props, so that these options can be overriden with component props
215
+ static defaultProps = {
216
+ enableAutomaticScroll: hocOptions.enableAutomaticScroll,
217
+ extraHeight: hocOptions.extraHeight,
218
+ extraScrollHeight: hocOptions.extraScrollHeight,
219
+ enableResetScrollToCoords: hocOptions.enableResetScrollToCoords,
220
+ keyboardOpeningTime: hocOptions.keyboardOpeningTime,
221
+ viewIsInsideTabBar: hocOptions.viewIsInsideTabBar,
222
+ enableOnAndroid: hocOptions.enableOnAndroid,
223
+ }
224
+
225
+ constructor(props: KeyboardAwareHOCProps) {
226
+ super(props)
227
+ this.keyboardWillShowEvent = undefined
228
+ this.keyboardWillHideEvent = undefined
229
+ this.callbacks = {}
230
+ this.position = { x: 0, y: 0 }
231
+ this.defaultResetScrollToCoords = null
232
+ const keyboardSpace: number = props.viewIsInsideTabBar
233
+ ? _KAM_DEFAULT_TAB_BAR_HEIGHT
234
+ : 0
235
+ this.state = { keyboardSpace }
236
+ }
237
+
238
+ componentDidMount() {
239
+ this.mountedComponent = true
240
+ // Keyboard events
241
+ if (Platform.OS === 'ios') {
242
+ this.keyboardWillShowEvent = Keyboard.addListener(
243
+ 'keyboardWillShow',
244
+ this._updateKeyboardSpace,
245
+ )
246
+ this.keyboardWillHideEvent = Keyboard.addListener(
247
+ 'keyboardWillHide',
248
+ this._resetKeyboardSpace,
249
+ )
250
+ } else if (Platform.OS === 'android' && this.props.enableOnAndroid) {
251
+ this.keyboardWillShowEvent = Keyboard.addListener(
252
+ 'keyboardDidShow',
253
+ this._updateKeyboardSpace,
254
+ )
255
+ this.keyboardWillHideEvent = Keyboard.addListener(
256
+ 'keyboardDidHide',
257
+ this._resetKeyboardSpace,
258
+ )
259
+ }
260
+
261
+ supportedKeyboardEvents.forEach((eventName) => {
262
+ const callbackName = keyboardEventToCallbackName(eventName)
263
+ if (this.props[callbackName]) {
264
+ this.callbacks[eventName] = Keyboard.addListener(
265
+ eventName,
266
+ this.props[callbackName],
267
+ )
268
+ }
269
+ })
270
+ }
271
+
272
+ componentDidUpdate(prevProps: KeyboardAwareHOCProps) {
273
+ if (this.props.viewIsInsideTabBar !== prevProps.viewIsInsideTabBar) {
274
+ const keyboardSpace: number = this.props.viewIsInsideTabBar
275
+ ? _KAM_DEFAULT_TAB_BAR_HEIGHT
276
+ : 0
277
+ if (this.state.keyboardSpace !== keyboardSpace) {
278
+ this.setState({ keyboardSpace })
279
+ }
280
+ }
281
+ }
282
+
283
+ componentWillUnmount() {
284
+ this.mountedComponent = false
285
+ this.keyboardWillShowEvent && this.keyboardWillShowEvent.remove()
286
+ this.keyboardWillHideEvent && this.keyboardWillHideEvent.remove()
287
+ Object.values(this.callbacks).forEach((callback) => callback.remove(),
288
+ )
289
+ }
290
+
291
+ getScrollResponder = () => {
292
+ return (
293
+ this._rnkasv_keyboardView &&
294
+ this._rnkasv_keyboardView.getScrollResponder &&
295
+ this._rnkasv_keyboardView.getScrollResponder()
296
+ )
297
+ }
298
+
299
+ scrollToPosition = (x: number, y: number, animated = true) => {
300
+ const responder = this.getScrollResponder()
301
+ if (!responder) {
302
+ return
303
+ }
304
+ if (responder.scrollResponderScrollTo) {
305
+ // React Native < 0.65
306
+ responder.scrollResponderScrollTo({ x, y, animated })
307
+ } else if (responder.scrollTo) {
308
+ // React Native >= 0.65
309
+ responder.scrollTo({ x, y, animated })
310
+ }
311
+ }
312
+
313
+ scrollToEnd = (animated = true) => {
314
+ const responder = this.getScrollResponder()
315
+ if (!responder) {
316
+ return
317
+ }
318
+ if (responder.scrollResponderScrollToEnd) {
319
+ // React Native < 0.65
320
+ responder.scrollResponderScrollToEnd({ animated })
321
+ } else if (responder.scrollToEnd) {
322
+ // React Native >= 0.65
323
+ responder.scrollToEnd({ animated })
324
+ }
325
+ }
326
+
327
+ scrollForExtraHeightOnAndroid = (extraHeight: number) => {
328
+ this.scrollToPosition(0, this.position.y + extraHeight, true)
329
+ }
330
+
331
+ /**
332
+ * @param keyboardOpeningTime: takes a different keyboardOpeningTime in consideration.
333
+ * @param extraHeight: takes an extra height in consideration.
334
+ */
335
+ scrollToFocusedInput = (
336
+ reactNode: any,
337
+ extraHeight?: number,
338
+ keyboardOpeningTime?: number,
339
+ ) => {
340
+ if (extraHeight === undefined) {
341
+ extraHeight = this.props.extraHeight || 0
342
+ }
343
+ if (keyboardOpeningTime === undefined) {
344
+ keyboardOpeningTime = this.props.keyboardOpeningTime || 0
345
+ }
346
+ setTimeout(() => {
347
+ if (!this.mountedComponent) {
348
+ return
349
+ }
350
+ const responder = this.getScrollResponder()
351
+ responder &&
352
+ responder.scrollResponderScrollNativeHandleToKeyboard(
353
+ reactNode,
354
+ extraHeight,
355
+ true,
356
+ )
357
+ }, keyboardOpeningTime)
358
+ }
359
+
360
+ scrollIntoView = async (
361
+ element: React.ComponentClass,
362
+ options: ScrollIntoViewOptions = {},
363
+ ) => {
364
+ if (!this._rnkasv_keyboardView || !element) {
365
+ return
366
+ }
367
+
368
+ const [parentLayout, childLayout] = await Promise.all([
369
+ this._measureElement(this._rnkasv_keyboardView),
370
+ this._measureElement(element),
371
+ ])
372
+
373
+ const getScrollPosition =
374
+ options.getScrollPosition || this._defaultGetScrollPosition
375
+ const { x, y, animated } = getScrollPosition(
376
+ parentLayout,
377
+ childLayout,
378
+ this.position,
379
+ )
380
+ this.scrollToPosition(x, y, animated)
381
+ }
382
+
383
+ _defaultGetScrollPosition = (
384
+ parentLayout: ElementLayout,
385
+ childLayout: ElementLayout,
386
+ contentOffset: ContentOffset,
387
+ ): ScrollPosition => {
388
+ return {
389
+ x: 0,
390
+ y: Math.max(0, childLayout.y - parentLayout.y + contentOffset.y),
391
+ animated: true,
392
+ }
393
+ }
394
+
395
+ _measureElement = (element: React.ComponentClass): Promise<ElementLayout> => {
396
+ const node = findNodeHandle(element)
397
+
398
+ return new Promise((resolve: (el: ElementLayout) => void) => {
399
+ UIManager.measureInWindow(
400
+ node,
401
+ (x: number, y: number, width: number, height: number) => {
402
+ resolve({ x, y, width, height })
403
+ },
404
+ )
405
+ })
406
+ }
407
+
408
+ // Keyboard actions
409
+ _updateKeyboardSpace = (frames: Parameters<KeyboardEventListener>['0']) => {
410
+ // Automatically scroll to focused TextInput
411
+ if (this.props.enableAutomaticScroll) {
412
+ let keyboardSpace: number =
413
+ frames.endCoordinates.height + this.props.extraScrollHeight
414
+ if (this.props.viewIsInsideTabBar) {
415
+ keyboardSpace -= _KAM_DEFAULT_TAB_BAR_HEIGHT
416
+ }
417
+ this.setState({ keyboardSpace })
418
+ const currentlyFocusedField = TextInput.State.currentlyFocusedInput ?
419
+ findNodeHandle(TextInput.State.currentlyFocusedInput()) : TextInput.State.currentlyFocusedField()
420
+ const responder = this.getScrollResponder()
421
+ if (!currentlyFocusedField || !responder) {
422
+ return
423
+ }
424
+ // @ts-ignore
425
+ UIManager.viewIsDescendantOf(
426
+ currentlyFocusedField,
427
+ responder.getInnerViewNode(),
428
+ (isAncestor: boolean) => {
429
+ if (isAncestor) {
430
+ // Check if the TextInput will be hidden by the keyboard
431
+ UIManager.measureInWindow(
432
+ currentlyFocusedField,
433
+ (x: number, y: number, width: number, height: number) => {
434
+ const textInputBottomPosition = y + height
435
+ const keyboardPosition = frames.endCoordinates.screenY
436
+ const totalExtraHeight =
437
+ this.props.extraScrollHeight + this.props.extraHeight
438
+ if (Platform.OS === 'ios') {
439
+ if (
440
+ textInputBottomPosition >
441
+ keyboardPosition - totalExtraHeight
442
+ ) {
443
+ this._scrollToFocusedInputWithNodeHandle(
444
+ currentlyFocusedField,
445
+ )
446
+ }
447
+ } else {
448
+ // On android, the system would scroll the text input just
449
+ // above the keyboard so we just neet to scroll the extra
450
+ // height part
451
+ if (textInputBottomPosition > keyboardPosition) {
452
+ // Since the system already scrolled the whole view up
453
+ // we should reduce that amount
454
+ keyboardSpace =
455
+ keyboardSpace -
456
+ (textInputBottomPosition - keyboardPosition)
457
+ this.setState({ keyboardSpace })
458
+ this.scrollForExtraHeightOnAndroid(totalExtraHeight)
459
+ } else if (
460
+ textInputBottomPosition >
461
+ keyboardPosition - totalExtraHeight
462
+ ) {
463
+ this.scrollForExtraHeightOnAndroid(
464
+ totalExtraHeight -
465
+ (keyboardPosition - textInputBottomPosition),
466
+ )
467
+ }
468
+ }
469
+ },
470
+ )
471
+ }
472
+ },
473
+ )
474
+ }
475
+ if (!this.props.resetScrollToCoords) {
476
+ if (!this.defaultResetScrollToCoords) {
477
+ this.defaultResetScrollToCoords = this.position
478
+ }
479
+ }
480
+ }
481
+
482
+ _resetKeyboardSpace = () => {
483
+ const keyboardSpace: number = this.props.viewIsInsideTabBar
484
+ ? _KAM_DEFAULT_TAB_BAR_HEIGHT
485
+ : 0
486
+ this.setState({ keyboardSpace })
487
+ // Reset scroll position after keyboard dismissal
488
+ if (this.props.enableResetScrollToCoords === false) {
489
+ this.defaultResetScrollToCoords = null
490
+ return
491
+ } else if (this.props.resetScrollToCoords) {
492
+ this.scrollToPosition(
493
+ this.props.resetScrollToCoords.x,
494
+ this.props.resetScrollToCoords.y,
495
+ true,
496
+ )
497
+ } else {
498
+ if (this.defaultResetScrollToCoords) {
499
+ this.scrollToPosition(
500
+ this.defaultResetScrollToCoords.x,
501
+ this.defaultResetScrollToCoords.y,
502
+ true,
503
+ )
504
+ this.defaultResetScrollToCoords = null
505
+ } else {
506
+ this.scrollToPosition(0, 0, true)
507
+ }
508
+ }
509
+ }
510
+
511
+ _scrollToFocusedInputWithNodeHandle = (
512
+ nodeID: number,
513
+ extraHeight?: number,
514
+ keyboardOpeningTime?: number,
515
+ ) => {
516
+ if (extraHeight === undefined) {
517
+ extraHeight = this.props.extraHeight
518
+ }
519
+ const reactNode = findNodeHandle(nodeID)
520
+ this.scrollToFocusedInput(
521
+ reactNode,
522
+ extraHeight + this.props.extraScrollHeight,
523
+ keyboardOpeningTime !== undefined
524
+ ? keyboardOpeningTime
525
+ : this.props.keyboardOpeningTime || 0,
526
+ )
527
+ }
528
+
529
+ _handleOnScroll = (
530
+ e: NativeSyntheticEvent<any> & { nativeEvent: { contentOffset: number } },
531
+ ) => {
532
+ this.position = e.nativeEvent.contentOffset
533
+ }
534
+
535
+ _handleRef = (ref: React.ComponentClass<any>) => {
536
+ this._rnkasv_keyboardView = ref ? hocOptions.extractNativeRef(ref) : ref
537
+ if (this.props.innerRef) {
538
+ this.props.innerRef(this._rnkasv_keyboardView)
539
+ }
540
+ }
541
+
542
+ update = () => {
543
+ const currentlyFocusedField = TextInput.State.currentlyFocusedInput ?
544
+ findNodeHandle(TextInput.State.currentlyFocusedInput()) : TextInput.State.currentlyFocusedField()
545
+ const responder = this.getScrollResponder()
546
+
547
+ if (!currentlyFocusedField || !responder) {
548
+ return
549
+ }
550
+
551
+ this._scrollToFocusedInputWithNodeHandle(currentlyFocusedField)
552
+ }
553
+
554
+ render() {
555
+ const { enableOnAndroid, contentContainerStyle, onScroll } = this.props
556
+ let newContentContainerStyle
557
+ if (Platform.OS === 'android' && enableOnAndroid) {
558
+ newContentContainerStyle = [].concat(contentContainerStyle).concat({
559
+ paddingBottom:
560
+ ((contentContainerStyle || {}).paddingBottom || 0) +
561
+ this.state.keyboardSpace,
562
+ })
563
+ }
564
+ const refProps = { [hocOptions.refPropName]: this._handleRef }
565
+ return (
566
+ <ScrollableComponent
567
+ {...refProps}
568
+ keyboardDismissMode='interactive'
569
+ contentInset={{ bottom: this.state.keyboardSpace }}
570
+ automaticallyAdjustContentInsets={false}
571
+ showsVerticalScrollIndicator={true}
572
+ scrollEventThrottle={1}
573
+ {...this.props}
574
+ contentContainerStyle={
575
+ newContentContainerStyle || contentContainerStyle
576
+ }
577
+ keyboardSpace={this.state.keyboardSpace}
578
+ getScrollResponder={this.getScrollResponder}
579
+ scrollToPosition={this.scrollToPosition}
580
+ scrollToEnd={this.scrollToEnd}
581
+ scrollForExtraHeightOnAndroid={this.scrollForExtraHeightOnAndroid}
582
+ scrollToFocusedInput={this.scrollToFocusedInput}
583
+ scrollIntoView={this.scrollIntoView}
584
+ resetKeyboardSpace={this._resetKeyboardSpace}
585
+ handleOnScroll={this._handleOnScroll}
586
+ update={this.update}
587
+ // @ts-ignore
588
+ onScroll={Animated.forkEvent(onScroll, this._handleOnScroll)}
589
+ />
590
+ )
591
+ }
592
+ }
593
+ }
594
+
595
+ // Allow to pass options, without breaking change, and curried for composition
596
+ // listenToKeyboardEvents(ScrollView);
597
+ // listenToKeyboardEvents(options)(Comp);
598
+ const listenToKeyboardEvents = <C extends React.ComponentType | React.ComponentClass>(configOrComp: C) => {
599
+ //@ts-ignore
600
+ if (typeof configOrComp === 'object' && !configOrComp.displayName) {
601
+ return ((Comp: Function) => KeyboardAwareHOC(Comp as React.ComponentClass, configOrComp)) as unknown as C
602
+ } else {
603
+ //@ts-ignore
604
+ return KeyboardAwareHOC(configOrComp) as C
605
+ }
606
+ }
607
+
608
+ export default listenToKeyboardEvents
@@ -0,0 +1,13 @@
1
+ /* @flow */
2
+
3
+ export interface KeyboardAwareInterface {
4
+ getScrollResponder: () => void,
5
+ scrollToPosition: (x: number, y: number, animated?: boolean) => void,
6
+ scrollToEnd: (animated?: boolean) => void,
7
+ scrollForExtraHeightOnAndroid: (extraHeight: number) => void,
8
+ scrollToFocusedInput: (
9
+ reactNode: Object,
10
+ extraHeight: number,
11
+ keyboardOpeningTime: number
12
+ ) => void
13
+ }
@@ -0,0 +1,6 @@
1
+ /* @flow */
2
+
3
+ import { ScrollView } from 'react-native'
4
+ import listenToKeyboardEvents from './KeyboardAwareHOC'
5
+
6
+ export default listenToKeyboardEvents(ScrollView)
@@ -0,0 +1,6 @@
1
+ /* @flow */
2
+
3
+ import { SectionList } from 'react-native'
4
+ import listenToKeyboardEvents from './KeyboardAwareHOC'
5
+
6
+ export default listenToKeyboardEvents(SectionList)