@codeleap/mobile 1.9.25 → 1.9.26

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 (202) hide show
  1. package/CodeLeap-Mobile-Packages.code-workspace +7 -7
  2. package/dist/components/ActivityIndicator.d.ts +13 -13
  3. package/dist/components/ActivityIndicator.js +54 -54
  4. package/dist/components/ActivityIndicator.js.map +0 -0
  5. package/dist/components/Animated.d.ts +123 -15
  6. package/dist/components/Animated.js +58 -58
  7. package/dist/components/Animated.js.map +0 -0
  8. package/dist/components/Button.d.ts +125 -125
  9. package/dist/components/Button.js +82 -82
  10. package/dist/components/Button.js.map +0 -0
  11. package/dist/components/Checkbox/index.d.ts +15 -15
  12. package/dist/components/Checkbox/index.js +79 -79
  13. package/dist/components/Checkbox/index.js.map +0 -0
  14. package/dist/components/Checkbox/styles.d.ts +55 -55
  15. package/dist/components/Checkbox/styles.js +51 -51
  16. package/dist/components/Checkbox/styles.js.map +0 -0
  17. package/dist/components/ContentView.d.ts +10 -10
  18. package/dist/components/ContentView.js +50 -50
  19. package/dist/components/ContentView.js.map +0 -0
  20. package/dist/components/FileInput.d.ts +31 -31
  21. package/dist/components/FileInput.js +230 -230
  22. package/dist/components/FileInput.js.map +0 -0
  23. package/dist/components/Icon.d.ts +12 -12
  24. package/dist/components/Icon.js +70 -70
  25. package/dist/components/Icon.js.map +0 -0
  26. package/dist/components/Image.d.ts +18 -18
  27. package/dist/components/Image.js +59 -59
  28. package/dist/components/Image.js.map +0 -0
  29. package/dist/components/List.d.ts +14 -14
  30. package/dist/components/List.js +83 -83
  31. package/dist/components/List.js.map +0 -0
  32. package/dist/components/Modal/index.d.ts +26 -26
  33. package/dist/components/Modal/index.js +112 -112
  34. package/dist/components/Modal/index.js.map +0 -0
  35. package/dist/components/Modal/styles.d.ts +69 -69
  36. package/dist/components/Modal/styles.js +64 -64
  37. package/dist/components/Modal/styles.js.map +0 -0
  38. package/dist/components/Navigation/Navigation.d.ts +3 -3
  39. package/dist/components/Navigation/Navigation.js +87 -87
  40. package/dist/components/Navigation/Navigation.js.map +0 -0
  41. package/dist/components/Navigation/constants.d.ts +5 -5
  42. package/dist/components/Navigation/constants.js +10 -10
  43. package/dist/components/Navigation/constants.js.map +0 -0
  44. package/dist/components/Navigation/index.d.ts +3 -3
  45. package/dist/components/Navigation/index.js +19 -19
  46. package/dist/components/Navigation/index.js.map +0 -0
  47. package/dist/components/Navigation/types.d.ts +26 -26
  48. package/dist/components/Navigation/types.js +7 -7
  49. package/dist/components/Navigation/types.js.map +0 -0
  50. package/dist/components/Navigation/utils.d.ts +3 -3
  51. package/dist/components/Navigation/utils.js +69 -69
  52. package/dist/components/Navigation/utils.js.map +0 -0
  53. package/dist/components/NewPager/index.d.ts +26 -0
  54. package/dist/components/NewPager/index.js +92 -0
  55. package/dist/components/NewPager/index.js.map +1 -0
  56. package/dist/components/NewPager/styles.d.ts +87 -0
  57. package/dist/components/NewPager/styles.js +70 -0
  58. package/dist/components/NewPager/styles.js.map +1 -0
  59. package/dist/components/Overlay.d.ts +16 -16
  60. package/dist/components/Overlay.js +69 -69
  61. package/dist/components/Overlay.js.map +0 -0
  62. package/dist/components/Pager/index.d.ts +20 -20
  63. package/dist/components/Pager/index.js +167 -167
  64. package/dist/components/Pager/index.js.map +0 -0
  65. package/dist/components/Pager/styles.d.ts +54 -54
  66. package/dist/components/Pager/styles.js +43 -43
  67. package/dist/components/Pager/styles.js.map +0 -0
  68. package/dist/components/RadioInput/index.d.ts +26 -26
  69. package/dist/components/RadioInput/index.js +72 -72
  70. package/dist/components/RadioInput/index.js.map +0 -0
  71. package/dist/components/RadioInput/styles.d.ts +57 -57
  72. package/dist/components/RadioInput/styles.js +44 -44
  73. package/dist/components/RadioInput/styles.js.map +0 -0
  74. package/dist/components/Scroll.d.ts +13 -13
  75. package/dist/components/Scroll.js +81 -81
  76. package/dist/components/Scroll.js.map +0 -0
  77. package/dist/components/Sections.d.ts +11 -11
  78. package/dist/components/Sections.js +80 -80
  79. package/dist/components/Sections.js.map +0 -0
  80. package/dist/components/Select/index.d.ts +5 -5
  81. package/dist/components/Select/index.js +150 -150
  82. package/dist/components/Select/index.js.map +0 -0
  83. package/dist/components/Select/styles.d.ts +9 -9
  84. package/dist/components/Select/styles.js +56 -56
  85. package/dist/components/Select/styles.js.map +0 -0
  86. package/dist/components/Select/types.d.ts +40 -40
  87. package/dist/components/Select/types.js +2 -2
  88. package/dist/components/Select/types.js.map +0 -0
  89. package/dist/components/Slider/Mark.d.ts +3 -3
  90. package/dist/components/Slider/Mark.js +31 -31
  91. package/dist/components/Slider/Mark.js.map +0 -0
  92. package/dist/components/Slider/Thumb.d.ts +7 -7
  93. package/dist/components/Slider/Thumb.js +29 -29
  94. package/dist/components/Slider/Thumb.js.map +0 -0
  95. package/dist/components/Slider/index.d.ts +3 -3
  96. package/dist/components/Slider/index.js +97 -97
  97. package/dist/components/Slider/index.js.map +0 -0
  98. package/dist/components/Slider/types.d.ts +25 -25
  99. package/dist/components/Slider/types.js +2 -2
  100. package/dist/components/Slider/types.js.map +0 -0
  101. package/dist/components/Switch.d.ts +13 -13
  102. package/dist/components/Switch.js +75 -75
  103. package/dist/components/Switch.js.map +0 -0
  104. package/dist/components/Text.d.ts +12 -12
  105. package/dist/components/Text.js +52 -52
  106. package/dist/components/Text.js.map +0 -0
  107. package/dist/components/TextInput.d.ts +183 -183
  108. package/dist/components/TextInput.js +180 -180
  109. package/dist/components/TextInput.js.map +0 -0
  110. package/dist/components/Touchable.d.ts +14 -14
  111. package/dist/components/Touchable.js +75 -75
  112. package/dist/components/Touchable.js.map +0 -0
  113. package/dist/components/View.d.ts +123 -120
  114. package/dist/components/View.js +55 -54
  115. package/dist/components/View.js.map +1 -1
  116. package/dist/components/components.d.ts +26 -25
  117. package/dist/components/components.js +42 -41
  118. package/dist/components/components.js.map +1 -1
  119. package/dist/index.d.ts +5 -5
  120. package/dist/index.js +28 -28
  121. package/dist/index.js.map +0 -0
  122. package/dist/modules/documentPicker.d.ts +3 -3
  123. package/dist/modules/documentPicker.js +11 -11
  124. package/dist/modules/documentPicker.js.map +0 -0
  125. package/dist/modules/fastImage.d.ts +1 -1
  126. package/dist/modules/fastImage.js +9 -9
  127. package/dist/modules/fastImage.js.map +0 -0
  128. package/dist/modules/reactNavigation.d.ts +3 -3
  129. package/dist/modules/reactNavigation.js +10 -10
  130. package/dist/modules/reactNavigation.js.map +0 -0
  131. package/dist/modules/textInputMask.d.ts +12 -12
  132. package/dist/modules/textInputMask.js +7 -7
  133. package/dist/modules/types/fileTypes.d.ts +138 -138
  134. package/dist/modules/types/fileTypes.js +2 -2
  135. package/dist/modules/types/fileTypes.js.map +0 -0
  136. package/dist/modules/types/textInputMask.d.ts +12 -12
  137. package/dist/modules/types/textInputMask.js +2 -2
  138. package/dist/types/utility.d.ts +2 -2
  139. package/dist/types/utility.js +2 -2
  140. package/dist/types/utility.js.map +0 -0
  141. package/dist/utils/OSAlert.d.ts +31 -31
  142. package/dist/utils/OSAlert.js +141 -141
  143. package/dist/utils/OSAlert.js.map +0 -0
  144. package/dist/utils/misc.d.ts +2 -2
  145. package/dist/utils/misc.js +25 -25
  146. package/dist/utils/misc.js.map +0 -0
  147. package/dist/utils/styles.d.ts +1 -1
  148. package/dist/utils/styles.js +12 -12
  149. package/dist/utils/styles.js.map +0 -0
  150. package/package.json +42 -40
  151. package/src/components/ActivityIndicator.tsx +46 -46
  152. package/src/components/Animated.tsx +34 -34
  153. package/src/components/Button.tsx +95 -95
  154. package/src/components/Checkbox/index.tsx +85 -85
  155. package/src/components/Checkbox/styles.ts +76 -76
  156. package/src/components/ContentView.tsx +58 -58
  157. package/src/components/FileInput.tsx +230 -230
  158. package/src/components/Icon.tsx +58 -58
  159. package/src/components/Image.tsx +61 -61
  160. package/src/components/List.tsx +111 -111
  161. package/src/components/Modal/index.tsx +161 -161
  162. package/src/components/Modal/styles.ts +133 -133
  163. package/src/components/Navigation/Navigation.tsx +58 -58
  164. package/src/components/Navigation/constants.ts +8 -8
  165. package/src/components/Navigation/index.tsx +3 -3
  166. package/src/components/Navigation/types.ts +35 -35
  167. package/src/components/Navigation/utils.tsx +59 -59
  168. package/src/components/NewPager/index.tsx +123 -0
  169. package/src/components/NewPager/styles.ts +76 -0
  170. package/src/components/Overlay.tsx +77 -77
  171. package/src/components/Pager/index.tsx +242 -242
  172. package/src/components/Pager/styles.ts +52 -51
  173. package/src/components/RadioInput/index.tsx +101 -101
  174. package/src/components/RadioInput/styles.ts +67 -67
  175. package/src/components/Scroll.tsx +106 -106
  176. package/src/components/Sections.tsx +101 -101
  177. package/src/components/Select/index.tsx +195 -195
  178. package/src/components/Select/styles.ts +81 -81
  179. package/src/components/Select/types.ts +46 -46
  180. package/src/components/Slider/Mark.tsx +46 -46
  181. package/src/components/Slider/Thumb.tsx +29 -29
  182. package/src/components/Slider/index.tsx +123 -123
  183. package/src/components/Slider/types.ts +25 -25
  184. package/src/components/Switch.tsx +81 -81
  185. package/src/components/Text.tsx +30 -30
  186. package/src/components/TextInput.tsx +247 -247
  187. package/src/components/Touchable.tsx +78 -78
  188. package/src/components/View.tsx +48 -46
  189. package/src/components/components.ts +27 -26
  190. package/src/index.ts +6 -6
  191. package/src/modules/documentPicker.ts +7 -7
  192. package/src/modules/fastImage.ts +2 -2
  193. package/src/modules/index.d.ts +496 -496
  194. package/src/modules/reactNavigation.ts +4 -4
  195. package/src/modules/textInputMask.ts +9 -9
  196. package/src/modules/types/documentPicker.d.ts +215 -215
  197. package/src/modules/types/fileTypes.ts +138 -138
  198. package/src/modules/types/textInputMask.ts +13 -13
  199. package/src/types/utility.ts +3 -3
  200. package/src/utils/OSAlert.ts +180 -180
  201. package/src/utils/misc.ts +24 -24
  202. package/src/utils/styles.ts +14 -14
@@ -1,242 +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
- }
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
+ }
@@ -1,51 +1,52 @@
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
- }
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
+ }
52
+