@codeleap/mobile 2.3.7 → 2.3.10

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 (344) hide show
  1. package/CodeLeap-Mobile-Packages.code-workspace +7 -7
  2. package/dist/components/ActionIcon/index.d.ts +13 -13
  3. package/dist/components/ActionIcon/index.js +54 -54
  4. package/dist/components/ActionIcon/styles.d.ts +65 -65
  5. package/dist/components/ActionIcon/styles.js +60 -60
  6. package/dist/components/ActivityIndicator/index.d.ts +15 -15
  7. package/dist/components/ActivityIndicator/index.js +58 -58
  8. package/dist/components/ActivityIndicator/styles.d.ts +59 -59
  9. package/dist/components/ActivityIndicator/styles.js +51 -51
  10. package/dist/components/Animated.d.ts +124 -124
  11. package/dist/components/Animated.js +58 -58
  12. package/dist/components/AutoComplete/index.d.ts +33 -33
  13. package/dist/components/AutoComplete/index.js +128 -128
  14. package/dist/components/AutoComplete/styles.d.ts +57 -57
  15. package/dist/components/AutoComplete/styles.js +24 -24
  16. package/dist/components/Backdrop/index.d.ts +14 -14
  17. package/dist/components/Backdrop/index.js +62 -62
  18. package/dist/components/Backdrop/styles.d.ts +53 -53
  19. package/dist/components/Backdrop/styles.js +27 -27
  20. package/dist/components/Button/index.d.ts +246 -246
  21. package/dist/components/Button/index.js +118 -118
  22. package/dist/components/Button/styles.d.ts +65 -65
  23. package/dist/components/Button/styles.js +60 -60
  24. package/dist/components/Calendar/index.d.ts +15 -15
  25. package/dist/components/Calendar/index.js +79 -79
  26. package/dist/components/Calendar/style.d.ts +4 -4
  27. package/dist/components/Calendar/style.js +35 -35
  28. package/dist/components/Calendar/types.d.ts +95 -95
  29. package/dist/components/Calendar/types.js +2 -2
  30. package/dist/components/Checkbox/index.d.ts +15 -15
  31. package/dist/components/Checkbox/index.js +84 -84
  32. package/dist/components/Checkbox/styles.d.ts +56 -56
  33. package/dist/components/Checkbox/styles.js +52 -52
  34. package/dist/components/ContentView/index.d.ts +12 -12
  35. package/dist/components/ContentView/index.js +65 -65
  36. package/dist/components/ContentView/styles.d.ts +53 -53
  37. package/dist/components/ContentView/styles.js +25 -25
  38. package/dist/components/Drawer/index.d.ts +7 -7
  39. package/dist/components/Drawer/index.js +69 -69
  40. package/dist/components/Drawer/styles.d.ts +56 -56
  41. package/dist/components/Drawer/styles.js +38 -38
  42. package/dist/components/EmptyPlaceholder/index.d.ts +22 -22
  43. package/dist/components/EmptyPlaceholder/index.js +77 -77
  44. package/dist/components/EmptyPlaceholder/styles.d.ts +55 -55
  45. package/dist/components/EmptyPlaceholder/styles.js +31 -31
  46. package/dist/components/FileInput/index.d.ts +24 -24
  47. package/dist/components/FileInput/index.js +182 -182
  48. package/dist/components/FileInput/styles.d.ts +53 -53
  49. package/dist/components/FileInput/styles.js +18 -18
  50. package/dist/components/Grid/index.d.ts +32 -32
  51. package/dist/components/Grid/index.js +83 -83
  52. package/dist/components/Grid/styles.d.ts +5 -5
  53. package/dist/components/Grid/styles.js +18 -18
  54. package/dist/components/Icon/index.d.ts +14 -14
  55. package/dist/components/Icon/index.js +78 -78
  56. package/dist/components/Icon/styles.d.ts +61 -61
  57. package/dist/components/Icon/styles.js +48 -48
  58. package/dist/components/Image/index.d.ts +20 -20
  59. package/dist/components/Image/index.js +90 -90
  60. package/dist/components/Image/styles.d.ts +54 -54
  61. package/dist/components/Image/styles.js +24 -24
  62. package/dist/components/ImageView/Spotlight.d.ts +25 -25
  63. package/dist/components/ImageView/Spotlight.js +153 -153
  64. package/dist/components/ImageView/component.d.ts +5 -5
  65. package/dist/components/ImageView/component.js +53 -53
  66. package/dist/components/ImageView/index.d.ts +2 -2
  67. package/dist/components/ImageView/index.js +18 -18
  68. package/dist/components/InputLabel/index.d.ts +12 -12
  69. package/dist/components/InputLabel/index.js +61 -61
  70. package/dist/components/InputLabel/styles.d.ts +4 -4
  71. package/dist/components/InputLabel/styles.js +25 -25
  72. package/dist/components/List/PaginationIndicator.d.ts +67 -67
  73. package/dist/components/List/PaginationIndicator.js +50 -50
  74. package/dist/components/List/index.d.ts +31 -31
  75. package/dist/components/List/index.js +80 -80
  76. package/dist/components/List/styles.d.ts +5 -5
  77. package/dist/components/List/styles.js +26 -26
  78. package/dist/components/Modal/index.d.ts +41 -41
  79. package/dist/components/Modal/index.js +143 -143
  80. package/dist/components/Modal/styles.d.ts +58 -58
  81. package/dist/components/Modal/styles.js +74 -74
  82. package/dist/components/MultiSelect/index.d.ts +6 -6
  83. package/dist/components/MultiSelect/index.js +117 -117
  84. package/dist/components/MultiSelect/styles.d.ts +58 -58
  85. package/dist/components/MultiSelect/styles.js +21 -21
  86. package/dist/components/MultiSelect/types.d.ts +35 -35
  87. package/dist/components/MultiSelect/types.js +2 -2
  88. package/dist/components/Navigation/Navigation.d.ts +3 -3
  89. package/dist/components/Navigation/Navigation.js +83 -83
  90. package/dist/components/Navigation/constants.d.ts +5 -5
  91. package/dist/components/Navigation/constants.js +10 -10
  92. package/dist/components/Navigation/index.d.ts +3 -3
  93. package/dist/components/Navigation/index.js +19 -19
  94. package/dist/components/Navigation/types.d.ts +26 -26
  95. package/dist/components/Navigation/types.js +7 -7
  96. package/dist/components/Navigation/utils.d.ts +3 -3
  97. package/dist/components/Navigation/utils.js +68 -68
  98. package/dist/components/Pager/index.d.ts +26 -26
  99. package/dist/components/Pager/index.js +87 -87
  100. package/dist/components/Pager/styles.d.ts +87 -87
  101. package/dist/components/Pager/styles.js +71 -71
  102. package/dist/components/RadioInput/index.d.ts +27 -27
  103. package/dist/components/RadioInput/index.js +75 -75
  104. package/dist/components/RadioInput/styles.d.ts +58 -58
  105. package/dist/components/RadioInput/styles.js +49 -49
  106. package/dist/components/Scroll/index.d.ts +20 -20
  107. package/dist/components/Scroll/index.js +100 -100
  108. package/dist/components/Scroll/styles.d.ts +4 -4
  109. package/dist/components/Scroll/styles.js +26 -26
  110. package/dist/components/Sections/index.d.ts +11 -11
  111. package/dist/components/Sections/index.js +79 -79
  112. package/dist/components/SegmentedControl/index.d.ts +52 -52
  113. package/dist/components/SegmentedControl/index.js +132 -132
  114. package/dist/components/SegmentedControl/styles.d.ts +60 -60
  115. package/dist/components/SegmentedControl/styles.js +42 -42
  116. package/dist/components/Select/index.d.ts +13 -13
  117. package/dist/components/Select/index.js +130 -130
  118. package/dist/components/Select/styles.d.ts +59 -59
  119. package/dist/components/Select/styles.js +31 -31
  120. package/dist/components/Select/types.d.ts +36 -36
  121. package/dist/components/Select/types.js +2 -2
  122. package/dist/components/Slider/Mark.d.ts +3 -3
  123. package/dist/components/Slider/Mark.js +31 -31
  124. package/dist/components/Slider/Thumb.d.ts +7 -7
  125. package/dist/components/Slider/Thumb.js +29 -29
  126. package/dist/components/Slider/index.d.ts +4 -4
  127. package/dist/components/Slider/index.js +102 -102
  128. package/dist/components/Slider/styles.d.ts +54 -54
  129. package/dist/components/Slider/styles.js +60 -60
  130. package/dist/components/Slider/types.d.ts +26 -26
  131. package/dist/components/Slider/types.js +2 -2
  132. package/dist/components/Switch/index.d.ts +14 -14
  133. package/dist/components/Switch/index.js +84 -84
  134. package/dist/components/Switch/styles.d.ts +55 -55
  135. package/dist/components/Switch/styles.js +33 -33
  136. package/dist/components/Text/index.d.ts +23 -23
  137. package/dist/components/Text/index.js +124 -124
  138. package/dist/components/Text/styles.d.ts +70 -70
  139. package/dist/components/Text/styles.js +30 -30
  140. package/dist/components/TextInput/index.d.ts +181 -181
  141. package/dist/components/TextInput/index.js +213 -213
  142. package/dist/components/TextInput/styles.d.ts +63 -63
  143. package/dist/components/TextInput/styles.js +64 -64
  144. package/dist/components/Touchable/index.d.ts +21 -21
  145. package/dist/components/Touchable/index.js +157 -157
  146. package/dist/components/Touchable/styles.d.ts +58 -58
  147. package/dist/components/Touchable/styles.js +23 -23
  148. package/dist/components/View/index.d.ts +132 -132
  149. package/dist/components/View/index.js +101 -101
  150. package/dist/components/View/styles.d.ts +54 -54
  151. package/dist/components/View/styles.js +28 -28
  152. package/dist/components/components.d.ts +38 -38
  153. package/dist/components/components.js +67 -67
  154. package/dist/components/defaultStyles.d.ts +1369 -1369
  155. package/dist/components/defaultStyles.js +64 -64
  156. package/dist/components/legacy/Modal/index.d.ts +28 -28
  157. package/dist/components/legacy/Modal/index.js +113 -113
  158. package/dist/components/legacy/Modal/styles.d.ts +64 -64
  159. package/dist/components/legacy/Modal/styles.js +59 -59
  160. package/dist/components/legacy/Pager/index.d.ts +20 -20
  161. package/dist/components/legacy/Pager/index.js +167 -167
  162. package/dist/components/legacy/Pager/styles.d.ts +54 -54
  163. package/dist/components/legacy/Pager/styles.js +43 -43
  164. package/dist/components/legacy/index.d.ts +2 -2
  165. package/dist/components/legacy/index.js +18 -18
  166. package/dist/index.d.ts +7 -7
  167. package/dist/index.js +42 -42
  168. package/dist/modules/documentPicker.d.ts +3 -3
  169. package/dist/modules/documentPicker.js +11 -11
  170. package/dist/modules/fastImage.d.ts +1 -1
  171. package/dist/modules/fastImage.js +9 -9
  172. package/dist/modules/reactNavigation.d.ts +5 -5
  173. package/dist/modules/reactNavigation.js +25 -25
  174. package/dist/modules/textInputMask.d.ts +10 -10
  175. package/dist/modules/textInputMask.js +22 -22
  176. package/dist/modules/types/fileTypes.d.ts +138 -138
  177. package/dist/modules/types/fileTypes.js +2 -2
  178. package/dist/modules/types/textInputMask.d.ts +7 -7
  179. package/dist/modules/types/textInputMask.js +2 -2
  180. package/dist/types/index.d.ts +1 -1
  181. package/dist/types/index.js +17 -17
  182. package/dist/types/utility.d.ts +8 -8
  183. package/dist/types/utility.js +2 -2
  184. package/dist/utils/KeyboardAware/context.d.ts +13 -13
  185. package/dist/utils/KeyboardAware/context.js +67 -67
  186. package/dist/utils/KeyboardAware/index.d.ts +8 -8
  187. package/dist/utils/KeyboardAware/index.js +32 -32
  188. package/dist/utils/KeyboardAware/keyboardHooks.d.ts +26 -26
  189. package/dist/utils/KeyboardAware/keyboardHooks.js +89 -89
  190. package/dist/utils/KeyboardAware/lib/KeyboardAwareFlatList.d.ts +3 -3
  191. package/dist/utils/KeyboardAware/lib/KeyboardAwareFlatList.js +8 -8
  192. package/dist/utils/KeyboardAware/lib/KeyboardAwareHOC.d.ts +67 -67
  193. package/dist/utils/KeyboardAware/lib/KeyboardAwareHOC.js +450 -450
  194. package/dist/utils/KeyboardAware/lib/KeyboardAwareInterface.d.ts +7 -7
  195. package/dist/utils/KeyboardAware/lib/KeyboardAwareInterface.js +3 -3
  196. package/dist/utils/KeyboardAware/lib/KeyboardAwareScrollView.d.ts +3 -3
  197. package/dist/utils/KeyboardAware/lib/KeyboardAwareScrollView.js +9 -9
  198. package/dist/utils/KeyboardAware/lib/KeyboardAwareSectionList.d.ts +3 -3
  199. package/dist/utils/KeyboardAware/lib/KeyboardAwareSectionList.js +9 -9
  200. package/dist/utils/KeyboardAware/types.d.ts +1 -1
  201. package/dist/utils/KeyboardAware/types.js +6 -6
  202. package/dist/utils/ModalManager/components.d.ts +20 -20
  203. package/dist/utils/ModalManager/components.js +117 -117
  204. package/dist/utils/ModalManager/context.d.ts +48 -48
  205. package/dist/utils/ModalManager/context.js +204 -204
  206. package/dist/utils/ModalManager/index.d.ts +11 -11
  207. package/dist/utils/ModalManager/index.js +12 -12
  208. package/dist/utils/OSAlert.d.ts +32 -32
  209. package/dist/utils/OSAlert.js +142 -142
  210. package/dist/utils/PermissionManager/context.d.ts +52 -52
  211. package/dist/utils/PermissionManager/context.js +315 -315
  212. package/dist/utils/PermissionManager/index.d.ts +4 -4
  213. package/dist/utils/PermissionManager/index.js +8 -8
  214. package/dist/utils/PermissionManager/types.d.ts +13 -13
  215. package/dist/utils/PermissionManager/types.js +2 -2
  216. package/dist/utils/hooks.d.ts +40 -40
  217. package/dist/utils/hooks.js +130 -130
  218. package/dist/utils/index.d.ts +10 -10
  219. package/dist/utils/index.js +39 -39
  220. package/dist/utils/input.d.ts +35 -35
  221. package/dist/utils/input.js +48 -48
  222. package/dist/utils/misc.d.ts +6 -6
  223. package/dist/utils/misc.js +86 -86
  224. package/dist/utils/notifications.d.ts +34 -34
  225. package/dist/utils/notifications.js +267 -267
  226. package/dist/utils/theme.d.ts +42 -42
  227. package/dist/utils/theme.js +52 -52
  228. package/package.json +54 -54
  229. package/src/components/ActionIcon/index.tsx +32 -0
  230. package/src/components/ActionIcon/styles.ts +97 -0
  231. package/src/components/ActivityIndicator/index.tsx +50 -0
  232. package/src/components/ActivityIndicator/styles.ts +68 -0
  233. package/src/components/Animated.tsx +34 -0
  234. package/src/components/AutoComplete/index.tsx +163 -0
  235. package/src/components/AutoComplete/styles.ts +44 -0
  236. package/src/components/Backdrop/index.tsx +48 -0
  237. package/src/components/Backdrop/styles.ts +33 -0
  238. package/src/components/Button/index.tsx +155 -0
  239. package/src/components/Button/styles.ts +129 -0
  240. package/src/components/Calendar/index.tsx +65 -0
  241. package/src/components/Calendar/style.ts +35 -0
  242. package/src/components/Calendar/types.ts +102 -0
  243. package/src/components/Checkbox/index.tsx +91 -0
  244. package/src/components/Checkbox/styles.ts +81 -0
  245. package/src/components/ContentView/index.tsx +63 -0
  246. package/src/components/ContentView/styles.ts +24 -0
  247. package/src/components/Drawer/index.tsx +33 -0
  248. package/src/components/Drawer/styles.ts +43 -0
  249. package/src/components/EmptyPlaceholder/index.tsx +88 -0
  250. package/src/components/EmptyPlaceholder/styles.ts +58 -0
  251. package/src/components/FileInput/index.tsx +181 -0
  252. package/src/components/FileInput/styles.ts +15 -0
  253. package/src/components/Grid/index.tsx +117 -0
  254. package/src/components/Grid/styles.ts +11 -0
  255. package/src/components/Icon/index.tsx +69 -0
  256. package/src/components/Icon/styles.ts +57 -0
  257. package/src/components/Image/index.tsx +91 -0
  258. package/src/components/Image/styles.ts +20 -0
  259. package/src/components/ImageView/Spotlight.tsx +157 -0
  260. package/src/components/ImageView/component.tsx +38 -0
  261. package/src/components/ImageView/index.ts +2 -0
  262. package/src/components/InputLabel/index.tsx +38 -0
  263. package/src/components/InputLabel/styles.ts +19 -0
  264. package/src/components/List/PaginationIndicator.tsx +71 -0
  265. package/src/components/List/index.tsx +114 -0
  266. package/src/components/List/styles.ts +19 -0
  267. package/src/components/Modal/index.tsx +218 -0
  268. package/src/components/Modal/styles.ts +153 -0
  269. package/src/components/MultiSelect/index.tsx +138 -0
  270. package/src/components/MultiSelect/styles.ts +18 -0
  271. package/src/components/MultiSelect/types.ts +42 -0
  272. package/src/components/Navigation/Navigation.tsx +54 -0
  273. package/src/components/Navigation/constants.ts +8 -0
  274. package/src/components/Navigation/index.tsx +3 -0
  275. package/src/components/Navigation/types.ts +35 -0
  276. package/src/components/Navigation/utils.tsx +57 -0
  277. package/src/components/Pager/index.tsx +121 -0
  278. package/src/components/Pager/styles.ts +81 -0
  279. package/src/components/RadioInput/index.tsx +106 -0
  280. package/src/components/RadioInput/styles.ts +67 -0
  281. package/src/components/Scroll/index.tsx +124 -0
  282. package/src/components/Scroll/styles.ts +18 -0
  283. package/src/components/Sections/index.tsx +91 -0
  284. package/src/components/SegmentedControl/index.tsx +204 -0
  285. package/src/components/SegmentedControl/styles.ts +89 -0
  286. package/src/components/Select/index.tsx +167 -0
  287. package/src/components/Select/styles.ts +62 -0
  288. package/src/components/Select/types.ts +43 -0
  289. package/src/components/Slider/Mark.tsx +46 -0
  290. package/src/components/Slider/Thumb.tsx +29 -0
  291. package/src/components/Slider/index.tsx +130 -0
  292. package/src/components/Slider/styles.ts +76 -0
  293. package/src/components/Slider/types.ts +30 -0
  294. package/src/components/Switch/index.tsx +91 -0
  295. package/src/components/Switch/styles.ts +38 -0
  296. package/src/components/Text/index.tsx +124 -0
  297. package/src/components/Text/styles.ts +50 -0
  298. package/src/components/TextInput/index.tsx +319 -0
  299. package/src/components/TextInput/styles.ts +127 -0
  300. package/src/components/Touchable/index.tsx +174 -0
  301. package/src/components/Touchable/styles.ts +28 -0
  302. package/src/components/View/index.tsx +103 -0
  303. package/src/components/View/styles.ts +24 -0
  304. package/src/components/components.ts +42 -0
  305. package/src/components/defaultStyles.ts +62 -0
  306. package/src/components/legacy/Modal/index.tsx +163 -0
  307. package/src/components/legacy/Modal/styles.ts +125 -0
  308. package/src/components/legacy/Pager/index.tsx +242 -0
  309. package/src/components/legacy/Pager/styles.ts +51 -0
  310. package/src/components/legacy/index.ts +2 -0
  311. package/src/index.ts +7 -7
  312. package/src/modules/documentPicker.ts +7 -0
  313. package/src/modules/fastImage.ts +2 -0
  314. package/src/modules/imageCropPicker.d.ts +497 -0
  315. package/src/modules/index.d.ts +682 -0
  316. package/src/modules/reactNavigation.ts +15 -0
  317. package/src/modules/textInputMask.ts +11 -0
  318. package/src/modules/types/documentPicker.d.ts +215 -0
  319. package/src/modules/types/fileTypes.ts +138 -0
  320. package/src/modules/types/textInputMask.ts +9 -0
  321. package/src/types/index.ts +1 -0
  322. package/src/types/utility.ts +9 -0
  323. package/src/utils/KeyboardAware/context.tsx +75 -0
  324. package/src/utils/KeyboardAware/index.ts +17 -0
  325. package/src/utils/KeyboardAware/keyboardHooks.ts +124 -0
  326. package/src/utils/KeyboardAware/lib/KeyboardAwareFlatList.ts +4 -0
  327. package/src/utils/KeyboardAware/lib/KeyboardAwareHOC.tsx +618 -0
  328. package/src/utils/KeyboardAware/lib/KeyboardAwareInterface.ts +13 -0
  329. package/src/utils/KeyboardAware/lib/KeyboardAwareScrollView.ts +6 -0
  330. package/src/utils/KeyboardAware/lib/KeyboardAwareSectionList.ts +6 -0
  331. package/src/utils/KeyboardAware/types.ts +159 -0
  332. package/src/utils/ModalManager/components.tsx +112 -0
  333. package/src/utils/ModalManager/context.tsx +260 -0
  334. package/src/utils/ModalManager/index.ts +16 -0
  335. package/src/utils/OSAlert.ts +180 -0
  336. package/src/utils/PermissionManager/context.tsx +302 -0
  337. package/src/utils/PermissionManager/index.ts +20 -0
  338. package/src/utils/PermissionManager/types.ts +24 -0
  339. package/src/utils/hooks.ts +163 -0
  340. package/src/utils/index.ts +11 -0
  341. package/src/utils/input.ts +51 -0
  342. package/src/utils/misc.ts +83 -0
  343. package/src/utils/notifications.ts +206 -0
  344. package/src/utils/theme.ts +58 -0
@@ -0,0 +1,242 @@
1
+ import {
2
+ ComponentVariants,
3
+ onUpdate,
4
+ useDefaultComponentStyle,
5
+ useDebounce,
6
+ useCodeleapContext,
7
+ } from '@codeleap/common'
8
+ import React, {
9
+ forwardRef,
10
+ ReactNode,
11
+ useImperativeHandle,
12
+ useMemo,
13
+ useRef,
14
+ useState,
15
+ } from 'react'
16
+ import { StyleSheet } from 'react-native'
17
+ import { StylesOf } from '../../../types/utility'
18
+ import { Animated } from '../../Animated'
19
+ import { Button } from '../../Button'
20
+ import { View } from '../../View'
21
+ import { Text } from '../../Text'
22
+ import { MobilePagerStyles, PagerComposition } from './styles'
23
+
24
+ export * from './styles'
25
+
26
+ export type PagerProps = {
27
+ variants?: ComponentVariants<typeof MobilePagerStyles>['variants']
28
+ styles?: StylesOf<PagerComposition>
29
+ page?: number
30
+ loop?: boolean
31
+ debug?: boolean
32
+ children?: ReactNode
33
+ onPageChange?: (page: number) => void
34
+ }
35
+
36
+ export type PagerRef = {
37
+ forward(by?: number): void
38
+ back(by?: number): void
39
+ to(index?: number): void
40
+ }
41
+
42
+ export const Pager = forwardRef<PagerRef, PagerProps>((pagerProps, ref) => {
43
+ const {
44
+ children,
45
+ styles,
46
+ variants,
47
+ page: propPage,
48
+ debug,
49
+ loop,
50
+ onPageChange,
51
+ } = pagerProps
52
+
53
+ const [page, setPage] = useState(() => propPage ?? 0)
54
+
55
+ const variantStyles = useDefaultComponentStyle<'u:Pager', typeof MobilePagerStyles>(
56
+ 'u:Pager',
57
+ {
58
+ styles,
59
+ transform: StyleSheet.flatten,
60
+ variants,
61
+ },
62
+ )
63
+ const { logger } = useCodeleapContext()
64
+ const nChildren = React.Children.count(children)
65
+
66
+ const lastPage = nChildren - 1
67
+
68
+ const pagerRef = useRef<PagerRef>({
69
+ forward: (by = 1) => {
70
+ setPage((currentPage) => {
71
+ if (currentPage < lastPage) {
72
+ return currentPage + by
73
+ } else if (loop) {
74
+ return by - 1
75
+ }
76
+ return currentPage
77
+ })
78
+ },
79
+ back: (by = 1) => {
80
+ setPage((currentPage) => {
81
+ if (currentPage > 0) {
82
+ return currentPage - by
83
+ } else if (loop) {
84
+ return nChildren - by
85
+ }
86
+ return currentPage
87
+ })
88
+ },
89
+ to: (n: number) => {
90
+ if (n >= 0 && n <= lastPage) {
91
+ setPage(n)
92
+ } else {
93
+ logger.warn(
94
+ 'Attempted to go to a page which falls outside range',
95
+ { currentPage: page, attemptedToGoTo: n, pageRange: [0, lastPage] },
96
+ 'Component',
97
+ )
98
+ }
99
+ },
100
+ })
101
+
102
+ onUpdate(() => {
103
+ onPageChange?.(page)
104
+ }, [page])
105
+
106
+ onUpdate(() => {
107
+ if (typeof propPage === 'number') {
108
+ setPage(propPage)
109
+ }
110
+ }, [propPage])
111
+
112
+ useImperativeHandle(ref, () => pagerRef.current)
113
+
114
+ const pagePoses = useMemo(() => {
115
+ return {
116
+ current: variantStyles['page:pose:current'],
117
+ next: variantStyles['page:pose:next'],
118
+ previous: variantStyles['page:pose:previous'],
119
+ }
120
+ }, [variantStyles])
121
+
122
+ return (
123
+ <View style={variantStyles.wrapper}>
124
+ {React.Children.map(children, (child, idx) => (
125
+ <Page
126
+ {...pagerProps}
127
+ idx={idx}
128
+ lastPage={lastPage}
129
+ pagePoses={pagePoses}
130
+ style={[variantStyles.page]}
131
+ page={page}
132
+ >
133
+ {child}
134
+ </Page>
135
+ ))}
136
+
137
+ {debug && (
138
+ <View
139
+ variants={['absolute']}
140
+ style={{ bottom: 0, left: 0, right: 0 }}
141
+ >
142
+ <Button text='previous' debugName='Previous Pager' onPress={pagerRef.current.back} />
143
+ <Text text={page.toString()} />
144
+ <Button text='next' debugName='Next Pager' onPress={pagerRef.current.forward} />
145
+ </View>
146
+ )}
147
+ </View>
148
+
149
+ )
150
+ })
151
+ type PageProps = PagerProps & {
152
+ idx: number
153
+ lastPage: number
154
+ page: number
155
+ pagePoses: any
156
+ style: any
157
+ }
158
+ const Page: React.FC<PageProps> = (pageProps) => {
159
+ const {
160
+ children: child,
161
+ idx,
162
+ loop,
163
+ lastPage,
164
+ page,
165
+ style,
166
+ pagePoses,
167
+ } = pageProps
168
+
169
+ if (!React.isValidElement(child)) return null
170
+
171
+ // const isLast = idx === lastPage
172
+ // const isFirst = idx === 0
173
+
174
+ // const isLoopNext = (loop && isFirst && page === lastPage)
175
+ // const isLoopPrevious = (loop && isLast && page === 0)
176
+
177
+ // const isCurrent = idx === page
178
+ // const isSequenceNext = idx === page + 1
179
+ // const isSequencePrevious = idx === page - 1
180
+
181
+ // const isNext = isSequenceNext || isLoopNext
182
+
183
+ // const isPrevious = isSequencePrevious || isLoopPrevious
184
+
185
+ // const isCurrentOrAdjacent = [
186
+ // isCurrent,
187
+ // isNext,
188
+ // isPrevious
189
+ // ].includes(true)
190
+
191
+ // if(isCurrentOrAdjacent){
192
+ // return <Animated
193
+ // key={idx}
194
+ // component='View'
195
+ // config={pagePoses}
196
+ // pose={isCurrent ? 'current' : (isNext ? 'next' : 'previous')}
197
+ // style={[{
198
+ // position: 'absolute',
199
+ // top: 0,
200
+
201
+ // },style]}
202
+ // >
203
+ // {child}
204
+ // </Animated>
205
+ // }
206
+ const isCurrent = idx === page
207
+ const isNext = idx > page
208
+ const [_opacity, setOpacity] = useState(isCurrent ? 1 : 0)
209
+
210
+ const [opacity, resetDebounceTimer] = useDebounce(_opacity, 800)
211
+
212
+ onUpdate(() => {
213
+ if (isCurrent) {
214
+ setOpacity(1)
215
+ } else {
216
+ setOpacity(0)
217
+ }
218
+
219
+ return resetDebounceTimer
220
+ }, [idx, page])
221
+
222
+ return (
223
+ <Animated
224
+ key={idx}
225
+ component='View'
226
+ config={pagePoses}
227
+ pose={isCurrent ? 'current' : isNext ? 'next' : 'previous'}
228
+ style={[
229
+ {
230
+ position: 'absolute',
231
+ top: 0,
232
+ opacity: isCurrent ? _opacity : opacity,
233
+ },
234
+ style,
235
+ ]}
236
+ >
237
+ {child}
238
+ </Animated>
239
+ )
240
+
241
+ // return <View style={{display:'none'}} key={idx}>{child}</View>
242
+ }
@@ -0,0 +1,51 @@
1
+ import {
2
+ createDefaultVariantFactory,
3
+ includePresets,
4
+ } from '@codeleap/common'
5
+
6
+ export type PagerComposition =
7
+ | 'page'
8
+ | 'page:transition'
9
+ | 'page:pose:previous'
10
+ | 'page:pose:next'
11
+ | 'page:pose:current'
12
+ | 'wrapper'
13
+
14
+ const createPagerStyle = createDefaultVariantFactory<PagerComposition>()
15
+
16
+ const presets = includePresets((style) => createPagerStyle(() => ({ wrapper: style })),
17
+ )
18
+
19
+ export const MobilePagerStyles = {
20
+ ...presets,
21
+ default: createPagerStyle((Theme) => {
22
+ const transition = {
23
+ duration: 500,
24
+ ease: 'easeInOut',
25
+ useNativeDriver: true,
26
+ }
27
+
28
+ return {
29
+ wrapper: {
30
+ ...Theme.presets.full,
31
+ },
32
+ 'page:pose:next': {
33
+ left: Theme.values.width * 1.8,
34
+ transition: transition,
35
+ },
36
+ 'page:pose:current': {
37
+ left: 0,
38
+ transition: transition,
39
+ },
40
+ 'page:pose:previous': {
41
+ left: -Theme.values.width * 1.8,
42
+ transition: transition,
43
+ },
44
+ page: {
45
+ width: '100%',
46
+ height: '100%',
47
+ },
48
+ }
49
+ }),
50
+ pageless: createPagerStyle(() => ({})),
51
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Modal'
2
+ export * from './Pager'
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
- export * from './components/components'
2
- export { default as posed } from 'react-native-pose'
3
- export { Linking } from 'react-native'
4
- export * from './utils'
5
- import uuid from 'react-native-uuid'
6
- import * as RNKeyboardAwareScrollView from './utils/KeyboardAware'
7
- export { uuid, RNKeyboardAwareScrollView }
1
+ export * from './components/components'
2
+ export { default as posed } from 'react-native-pose'
3
+ export { Linking } from 'react-native'
4
+ export * from './utils'
5
+ import uuid from 'react-native-uuid'
6
+ import * as RNKeyboardAwareScrollView from './utils/KeyboardAware'
7
+ export { uuid, RNKeyboardAwareScrollView }
@@ -0,0 +1,7 @@
1
+ // @ts-ignore
2
+ import DP from 'react-native-document-picker'
3
+ import * as DocumentPickerTypes from './types/documentPicker'
4
+
5
+ export const DocumentPicker = DP as DocumentPickerTypes.DocumentPicker
6
+
7
+ export { default as ImageCropPicker } from 'react-native-image-crop-picker'
@@ -0,0 +1,2 @@
1
+ // @ts-ignore
2
+ export { default as FastImage } from 'react-native-fast-image'