@codeleap/mobile 1.9.24 → 1.9.27

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 (210) 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 +132 -125
  9. package/dist/components/Button.js +93 -82
  10. package/dist/components/Button.js.map +1 -1
  11. package/dist/components/Checkbox/index.d.ts +15 -15
  12. package/dist/components/Checkbox/index.js +79 -77
  13. package/dist/components/Checkbox/index.js.map +1 -1
  14. package/dist/components/Checkbox/styles.d.ts +55 -55
  15. package/dist/components/Checkbox/styles.js +51 -48
  16. package/dist/components/Checkbox/styles.js.map +1 -1
  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/EmptyPlaceholder.d.ts +12 -0
  21. package/dist/components/EmptyPlaceholder.js +54 -0
  22. package/dist/components/EmptyPlaceholder.js.map +1 -0
  23. package/dist/components/FileInput.d.ts +31 -28
  24. package/dist/components/FileInput.js +230 -195
  25. package/dist/components/FileInput.js.map +1 -1
  26. package/dist/components/Gap.d.ts +8 -0
  27. package/dist/components/Gap.js +60 -0
  28. package/dist/components/Gap.js.map +1 -0
  29. package/dist/components/Icon.d.ts +12 -12
  30. package/dist/components/Icon.js +70 -70
  31. package/dist/components/Icon.js.map +0 -0
  32. package/dist/components/Image.d.ts +18 -18
  33. package/dist/components/Image.js +59 -59
  34. package/dist/components/Image.js.map +0 -0
  35. package/dist/components/List.d.ts +14 -14
  36. package/dist/components/List.js +84 -83
  37. package/dist/components/List.js.map +1 -1
  38. package/dist/components/Modal/index.d.ts +27 -26
  39. package/dist/components/Modal/index.js +113 -112
  40. package/dist/components/Modal/index.js.map +1 -1
  41. package/dist/components/Modal/styles.d.ts +69 -69
  42. package/dist/components/Modal/styles.js +64 -64
  43. package/dist/components/Modal/styles.js.map +0 -0
  44. package/dist/components/Navigation/Navigation.d.ts +3 -3
  45. package/dist/components/Navigation/Navigation.js +87 -87
  46. package/dist/components/Navigation/Navigation.js.map +0 -0
  47. package/dist/components/Navigation/constants.d.ts +5 -5
  48. package/dist/components/Navigation/constants.js +10 -10
  49. package/dist/components/Navigation/constants.js.map +0 -0
  50. package/dist/components/Navigation/index.d.ts +3 -3
  51. package/dist/components/Navigation/index.js +19 -19
  52. package/dist/components/Navigation/index.js.map +0 -0
  53. package/dist/components/Navigation/types.d.ts +26 -26
  54. package/dist/components/Navigation/types.js +7 -7
  55. package/dist/components/Navigation/types.js.map +0 -0
  56. package/dist/components/Navigation/utils.d.ts +3 -3
  57. package/dist/components/Navigation/utils.js +69 -69
  58. package/dist/components/Navigation/utils.js.map +0 -0
  59. package/dist/components/NewPager/index.d.ts +26 -0
  60. package/dist/components/NewPager/index.js +92 -0
  61. package/dist/components/NewPager/index.js.map +1 -0
  62. package/dist/components/NewPager/styles.d.ts +87 -0
  63. package/dist/components/NewPager/styles.js +70 -0
  64. package/dist/components/NewPager/styles.js.map +1 -0
  65. package/dist/components/Overlay.d.ts +16 -16
  66. package/dist/components/Overlay.js +69 -69
  67. package/dist/components/Overlay.js.map +0 -0
  68. package/dist/components/Pager/index.d.ts +20 -20
  69. package/dist/components/Pager/index.js +167 -167
  70. package/dist/components/Pager/index.js.map +0 -0
  71. package/dist/components/Pager/styles.d.ts +54 -54
  72. package/dist/components/Pager/styles.js +43 -43
  73. package/dist/components/Pager/styles.js.map +0 -0
  74. package/dist/components/RadioInput/index.d.ts +26 -26
  75. package/dist/components/RadioInput/index.js +72 -72
  76. package/dist/components/RadioInput/index.js.map +0 -0
  77. package/dist/components/RadioInput/styles.d.ts +57 -57
  78. package/dist/components/RadioInput/styles.js +44 -44
  79. package/dist/components/RadioInput/styles.js.map +0 -0
  80. package/dist/components/Scroll.d.ts +13 -13
  81. package/dist/components/Scroll.js +81 -81
  82. package/dist/components/Scroll.js.map +0 -0
  83. package/dist/components/Sections.d.ts +11 -11
  84. package/dist/components/Sections.js +80 -80
  85. package/dist/components/Sections.js.map +0 -0
  86. package/dist/components/Select/index.d.ts +5 -5
  87. package/dist/components/Select/index.js +150 -150
  88. package/dist/components/Select/index.js.map +0 -0
  89. package/dist/components/Select/styles.d.ts +9 -9
  90. package/dist/components/Select/styles.js +56 -56
  91. package/dist/components/Select/styles.js.map +0 -0
  92. package/dist/components/Select/types.d.ts +40 -40
  93. package/dist/components/Select/types.js +2 -2
  94. package/dist/components/Select/types.js.map +0 -0
  95. package/dist/components/Slider/Mark.d.ts +3 -3
  96. package/dist/components/Slider/Mark.js +31 -31
  97. package/dist/components/Slider/Mark.js.map +0 -0
  98. package/dist/components/Slider/Thumb.d.ts +7 -7
  99. package/dist/components/Slider/Thumb.js +29 -29
  100. package/dist/components/Slider/Thumb.js.map +0 -0
  101. package/dist/components/Slider/index.d.ts +3 -3
  102. package/dist/components/Slider/index.js +97 -97
  103. package/dist/components/Slider/index.js.map +0 -0
  104. package/dist/components/Slider/types.d.ts +25 -25
  105. package/dist/components/Slider/types.js +2 -2
  106. package/dist/components/Slider/types.js.map +0 -0
  107. package/dist/components/Switch.d.ts +13 -13
  108. package/dist/components/Switch.js +75 -75
  109. package/dist/components/Switch.js.map +0 -0
  110. package/dist/components/Text.d.ts +12 -12
  111. package/dist/components/Text.js +52 -52
  112. package/dist/components/Text.js.map +0 -0
  113. package/dist/components/TextInput.d.ts +183 -183
  114. package/dist/components/TextInput.js +180 -178
  115. package/dist/components/TextInput.js.map +1 -1
  116. package/dist/components/Touchable.d.ts +14 -14
  117. package/dist/components/Touchable.js +75 -61
  118. package/dist/components/Touchable.js.map +1 -1
  119. package/dist/components/View.d.ts +123 -120
  120. package/dist/components/View.js +55 -54
  121. package/dist/components/View.js.map +1 -1
  122. package/dist/components/components.d.ts +27 -25
  123. package/dist/components/components.js +43 -41
  124. package/dist/components/components.js.map +1 -1
  125. package/dist/index.d.ts +5 -5
  126. package/dist/index.js +28 -28
  127. package/dist/index.js.map +0 -0
  128. package/dist/modules/documentPicker.d.ts +3 -3
  129. package/dist/modules/documentPicker.js +11 -11
  130. package/dist/modules/documentPicker.js.map +0 -0
  131. package/dist/modules/fastImage.d.ts +1 -1
  132. package/dist/modules/fastImage.js +9 -9
  133. package/dist/modules/fastImage.js.map +0 -0
  134. package/dist/modules/reactNavigation.d.ts +3 -3
  135. package/dist/modules/reactNavigation.js +10 -10
  136. package/dist/modules/reactNavigation.js.map +0 -0
  137. package/dist/modules/textInputMask.d.ts +9 -12
  138. package/dist/modules/textInputMask.js +7 -7
  139. package/dist/modules/types/fileTypes.d.ts +138 -138
  140. package/dist/modules/types/fileTypes.js +2 -2
  141. package/dist/modules/types/fileTypes.js.map +0 -0
  142. package/dist/modules/types/textInputMask.d.ts +7 -12
  143. package/dist/modules/types/textInputMask.js +2 -2
  144. package/dist/types/utility.d.ts +2 -2
  145. package/dist/types/utility.js +2 -2
  146. package/dist/types/utility.js.map +0 -0
  147. package/dist/utils/OSAlert.d.ts +31 -31
  148. package/dist/utils/OSAlert.js +141 -141
  149. package/dist/utils/OSAlert.js.map +0 -0
  150. package/dist/utils/misc.d.ts +2 -2
  151. package/dist/utils/misc.js +25 -25
  152. package/dist/utils/misc.js.map +0 -0
  153. package/dist/utils/styles.d.ts +1 -1
  154. package/dist/utils/styles.js +12 -12
  155. package/dist/utils/styles.js.map +0 -0
  156. package/package.json +42 -40
  157. package/src/components/ActivityIndicator.tsx +46 -46
  158. package/src/components/Animated.tsx +34 -34
  159. package/src/components/Button.tsx +117 -95
  160. package/src/components/Checkbox/index.tsx +85 -85
  161. package/src/components/Checkbox/styles.ts +76 -76
  162. package/src/components/ContentView.tsx +58 -58
  163. package/src/components/EmptyPlaceholder.tsx +53 -0
  164. package/src/components/FileInput.tsx +230 -230
  165. package/src/components/Gap.tsx +40 -0
  166. package/src/components/Icon.tsx +58 -58
  167. package/src/components/Image.tsx +61 -61
  168. package/src/components/List.tsx +116 -111
  169. package/src/components/Modal/index.tsx +164 -161
  170. package/src/components/Modal/styles.ts +133 -133
  171. package/src/components/Navigation/Navigation.tsx +58 -58
  172. package/src/components/Navigation/constants.ts +8 -8
  173. package/src/components/Navigation/index.tsx +3 -3
  174. package/src/components/Navigation/types.ts +35 -35
  175. package/src/components/Navigation/utils.tsx +59 -59
  176. package/src/components/NewPager/index.tsx +123 -0
  177. package/src/components/NewPager/styles.ts +76 -0
  178. package/src/components/Overlay.tsx +77 -77
  179. package/src/components/Pager/index.tsx +242 -242
  180. package/src/components/Pager/styles.ts +51 -51
  181. package/src/components/RadioInput/index.tsx +101 -101
  182. package/src/components/RadioInput/styles.ts +67 -67
  183. package/src/components/Scroll.tsx +106 -106
  184. package/src/components/Sections.tsx +101 -101
  185. package/src/components/Select/index.tsx +195 -195
  186. package/src/components/Select/styles.ts +81 -81
  187. package/src/components/Select/types.ts +46 -46
  188. package/src/components/Slider/Mark.tsx +46 -46
  189. package/src/components/Slider/Thumb.tsx +29 -29
  190. package/src/components/Slider/index.tsx +123 -123
  191. package/src/components/Slider/types.ts +25 -25
  192. package/src/components/Switch.tsx +81 -81
  193. package/src/components/Text.tsx +30 -30
  194. package/src/components/TextInput.tsx +247 -247
  195. package/src/components/Touchable.tsx +78 -66
  196. package/src/components/View.tsx +48 -46
  197. package/src/components/components.ts +28 -26
  198. package/src/index.ts +6 -6
  199. package/src/modules/documentPicker.ts +7 -7
  200. package/src/modules/fastImage.ts +2 -2
  201. package/src/modules/index.d.ts +496 -496
  202. package/src/modules/reactNavigation.ts +4 -4
  203. package/src/modules/textInputMask.ts +9 -9
  204. package/src/modules/types/documentPicker.d.ts +215 -215
  205. package/src/modules/types/fileTypes.ts +138 -138
  206. package/src/modules/types/textInputMask.ts +9 -13
  207. package/src/types/utility.ts +3 -3
  208. package/src/utils/OSAlert.ts +180 -180
  209. package/src/utils/misc.ts +24 -24
  210. package/src/utils/styles.ts +14 -14
@@ -1,58 +1,58 @@
1
- // @ts-nocheck
2
- import * as React from 'react'
3
- import {
4
- TypeGuards,
5
- } from '@codeleap/common'
6
- import { Icon } from '../Icon'
7
- import { NavigationProps, NavigatorType, PropTypes, TNavigators } from './types'
8
- import { Navigators } from './constants'
9
-
10
- export const Navigation = <T extends NavigatorType>({ type, scenes, ...props }: NavigationProps<T>) => {
11
- const NavigationComponent = Navigators[type] as TNavigators[T]
12
-
13
- const defaultProps = {}
14
- if (type === 'Tab') {
15
- defaultProps.screenOptions = { headerShown: false }
16
- }
17
- // console.log('render Navigation', { type, scenes, props, defaultProps })
18
-
19
- return <NavigationComponent.Navigator {...(props as any)} {...defaultProps}>
20
- {
21
- Object.entries(scenes).map(([name, content], idx) => {
22
- const isFunction = TypeGuards.isFunction(content)
23
-
24
- let screenProps = {
25
- name,
26
- } as PropTypes[T]['Screen']
27
-
28
- if (isFunction) {
29
- screenProps.component = content
30
- // console.log('Render NavigationScreen', { scenes, screenProps, content, isFunction }, 'PACKAGES')
31
- } else {
32
- screenProps.component = content?.component?.default || content?.component || content?.default
33
- const nameParts = name.split('.')
34
- const title = content?.title || nameParts[nameParts.length - 1] || name.replace('.', '')
35
-
36
- screenProps = {
37
- ...screenProps,
38
- options: (optionProps) => ({
39
- title,
40
- tabBarIcon: (style) => <Icon name={content?.icon} style={style}/>,
41
- tabBarIconFocused: content?.iconFocused ? (style) => <Icon name={content?.iconFocused} style={style}/> : null,
42
- ...(TypeGuards.isFunction(content.options) ? content.options(optionProps) : content.options),
43
- }),
44
- }
45
- // console.log('Render NavigationScreen loop', { scenes, screenProps, content, title, isFunction, props }, 'PACKAGES')
46
- }
47
-
48
- return (
49
- // @ts-ignore
50
- <NavigationComponent.Screen
51
- key={idx}
52
- {...screenProps}
53
- />
54
- )
55
- })
56
- }
57
- </NavigationComponent.Navigator>
58
- }
1
+ // @ts-nocheck
2
+ import * as React from 'react'
3
+ import {
4
+ TypeGuards,
5
+ } from '@codeleap/common'
6
+ import { Icon } from '../Icon'
7
+ import { NavigationProps, NavigatorType, PropTypes, TNavigators } from './types'
8
+ import { Navigators } from './constants'
9
+
10
+ export const Navigation = <T extends NavigatorType>({ type, scenes, ...props }: NavigationProps<T>) => {
11
+ const NavigationComponent = Navigators[type] as TNavigators[T]
12
+
13
+ const defaultProps = {}
14
+ if (type === 'Tab') {
15
+ defaultProps.screenOptions = { headerShown: false }
16
+ }
17
+ // console.log('render Navigation', { type, scenes, props, defaultProps })
18
+
19
+ return <NavigationComponent.Navigator {...(props as any)} {...defaultProps}>
20
+ {
21
+ Object.entries(scenes).map(([name, content], idx) => {
22
+ const isFunction = TypeGuards.isFunction(content)
23
+
24
+ let screenProps = {
25
+ name,
26
+ } as PropTypes[T]['Screen']
27
+
28
+ if (isFunction) {
29
+ screenProps.component = content
30
+ // console.log('Render NavigationScreen', { scenes, screenProps, content, isFunction }, 'PACKAGES')
31
+ } else {
32
+ screenProps.component = content?.component?.default || content?.component || content?.default
33
+ const nameParts = name.split('.')
34
+ const title = content?.title || nameParts[nameParts.length - 1] || name.replace('.', '')
35
+
36
+ screenProps = {
37
+ ...screenProps,
38
+ options: (optionProps) => ({
39
+ title,
40
+ tabBarIcon: (style) => <Icon name={content?.icon} style={style}/>,
41
+ tabBarIconFocused: content?.iconFocused ? (style) => <Icon name={content?.iconFocused} style={style}/> : null,
42
+ ...(TypeGuards.isFunction(content.options) ? content.options(optionProps) : content.options),
43
+ }),
44
+ }
45
+ // console.log('Render NavigationScreen loop', { scenes, screenProps, content, title, isFunction, props }, 'PACKAGES')
46
+ }
47
+
48
+ return (
49
+ // @ts-ignore
50
+ <NavigationComponent.Screen
51
+ key={idx}
52
+ {...screenProps}
53
+ />
54
+ )
55
+ })
56
+ }
57
+ </NavigationComponent.Navigator>
58
+ }
@@ -1,8 +1,8 @@
1
- // @ts-nocheck
2
- import { createBottomTabNavigator, createDrawerNavigator, createStackNavigator } from '../../modules/reactNavigation'
3
-
4
- export const Navigators = {
5
- Drawer: createDrawerNavigator(),
6
- Stack: createStackNavigator(),
7
- Tab: createBottomTabNavigator(),
8
- }
1
+ // @ts-nocheck
2
+ import { createBottomTabNavigator, createDrawerNavigator, createStackNavigator } from '../../modules/reactNavigation'
3
+
4
+ export const Navigators = {
5
+ Drawer: createDrawerNavigator(),
6
+ Stack: createStackNavigator(),
7
+ Tab: createBottomTabNavigator(),
8
+ }
@@ -1,3 +1,3 @@
1
- export * from './Navigation'
2
- export * from './types'
3
- export * from './utils'
1
+ export * from './Navigation'
2
+ export * from './types'
3
+ export * from './utils'
@@ -1,35 +1,35 @@
1
- import { IconPlaceholder } from '@codeleap/common'
2
- import { Navigators } from './constants'
3
-
4
- export type TNavigators = typeof Navigators
5
- export type NavigatorType = keyof TNavigators
6
-
7
- export type PropTypes = {
8
- [P in NavigatorType] : {
9
- Screen: Omit<React.ComponentPropsWithRef<TNavigators[P]['Screen']>, 'children'|'name'>
10
- Navigator: Omit<React.ComponentPropsWithRef<TNavigators[P]['Navigator']>, 'children'|'name'>
11
- Group: Omit<React.ComponentPropsWithRef<TNavigators[P]['Group']>, 'children'|'name'>
12
- }
13
- }
14
- export type SceneComponent<K extends NavigatorType> = PropTypes[K]['Screen']
15
- export type SceneOptions<K extends NavigatorType> =
16
- { icon?: IconPlaceholder; default?:SceneComponent<K> } & PropTypes[K]['Screen']
17
- export type Scene<K extends NavigatorType> = SceneComponent<K> | SceneOptions<K>
18
-
19
- export type Scenes<K extends NavigatorType> = {
20
- [x:string] : Scene<K>
21
- }
22
-
23
- export type SceneProps = any
24
-
25
- export type NavigationProps<T extends NavigatorType> = {
26
- type: T
27
- scenes: Scenes<T>
28
- } & PropTypes[T]['Navigator']
29
-
30
- // export type NavigationStructure = {
31
- // [module:string] : {
32
- // scenes: Scenes,
33
-
34
- // }
35
- // }
1
+ import { IconPlaceholder } from '@codeleap/common'
2
+ import { Navigators } from './constants'
3
+
4
+ export type TNavigators = typeof Navigators
5
+ export type NavigatorType = keyof TNavigators
6
+
7
+ export type PropTypes = {
8
+ [P in NavigatorType] : {
9
+ Screen: Omit<React.ComponentPropsWithRef<TNavigators[P]['Screen']>, 'children'|'name'>
10
+ Navigator: Omit<React.ComponentPropsWithRef<TNavigators[P]['Navigator']>, 'children'|'name'>
11
+ Group: Omit<React.ComponentPropsWithRef<TNavigators[P]['Group']>, 'children'|'name'>
12
+ }
13
+ }
14
+ export type SceneComponent<K extends NavigatorType> = PropTypes[K]['Screen']
15
+ export type SceneOptions<K extends NavigatorType> =
16
+ { icon?: IconPlaceholder; default?:SceneComponent<K> } & PropTypes[K]['Screen']
17
+ export type Scene<K extends NavigatorType> = SceneComponent<K> | SceneOptions<K>
18
+
19
+ export type Scenes<K extends NavigatorType> = {
20
+ [x:string] : Scene<K>
21
+ }
22
+
23
+ export type SceneProps = any
24
+
25
+ export type NavigationProps<T extends NavigatorType> = {
26
+ type: T
27
+ scenes: Scenes<T>
28
+ } & PropTypes[T]['Navigator']
29
+
30
+ // export type NavigationStructure = {
31
+ // [module:string] : {
32
+ // scenes: Scenes,
33
+
34
+ // }
35
+ // }
@@ -1,59 +1,59 @@
1
- import React from 'react'
2
- import { Navigation } from './Navigation'
3
-
4
- export function createAppNavigation(Scenes:any) {
5
-
6
- console.log('Creating app navigation', { Scenes }, 'PACKAGES')
7
-
8
- const AllScenes = Object.entries<any>(Scenes).reduce((allScenes, [moduleName, content]) => {
9
-
10
- const subScenes = []
11
-
12
- for (const [name, sceneContent] of Object.entries(content.scenes)) {
13
- subScenes.push(
14
- [`${moduleName}.${name}`, sceneContent],
15
- )
16
- }
17
-
18
- return [
19
- ...allScenes,
20
- ...subScenes,
21
- ]
22
- }, [])
23
-
24
- const AppScenes = Object.fromEntries(AllScenes)
25
-
26
- const SCENES_RESULT = Object.fromEntries(
27
- Object.entries<any>(Scenes)
28
- .map(([S, { _ig_scenes, exclude, type, navigationProps, ...otherProps }]) => {
29
- let filterScenes = null
30
-
31
- if (exclude) {
32
- filterScenes = Object.fromEntries(
33
- AllScenes.filter(([path]) => !exclude.some(param => path.startsWith(param))),
34
- )
35
- }
36
-
37
- const Component = () => <Navigation
38
- type={type || 'Stack'}
39
- scenes={filterScenes || AppScenes}
40
- screenOptions={{
41
- headerShown: false,
42
- ...navigationProps?.screenOptions,
43
- }}
44
- {...navigationProps}
45
- />
46
- // console.log('SCENES_RESULT create', { _ig_scenes, exclude, type, navigationProps, otherProps })
47
-
48
- return [S, {
49
- ...otherProps,
50
- component: Component,
51
- }]
52
- }),
53
- )
54
-
55
- // console.log('SCENES_RESULT', SCENES_RESULT)
56
-
57
- return SCENES_RESULT
58
- }
59
-
1
+ import React from 'react'
2
+ import { Navigation } from './Navigation'
3
+
4
+ export function createAppNavigation(Scenes:any) {
5
+
6
+ console.log('Creating app navigation', { Scenes }, 'PACKAGES')
7
+
8
+ const AllScenes = Object.entries<any>(Scenes).reduce((allScenes, [moduleName, content]) => {
9
+
10
+ const subScenes = []
11
+
12
+ for (const [name, sceneContent] of Object.entries(content.scenes)) {
13
+ subScenes.push(
14
+ [`${moduleName}.${name}`, sceneContent],
15
+ )
16
+ }
17
+
18
+ return [
19
+ ...allScenes,
20
+ ...subScenes,
21
+ ]
22
+ }, [])
23
+
24
+ const AppScenes = Object.fromEntries(AllScenes)
25
+
26
+ const SCENES_RESULT = Object.fromEntries(
27
+ Object.entries<any>(Scenes)
28
+ .map(([S, { _ig_scenes, exclude, type, navigationProps, ...otherProps }]) => {
29
+ let filterScenes = null
30
+
31
+ if (exclude) {
32
+ filterScenes = Object.fromEntries(
33
+ AllScenes.filter(([path]) => !exclude.some(param => path.startsWith(param))),
34
+ )
35
+ }
36
+
37
+ const Component = () => <Navigation
38
+ type={type || 'Stack'}
39
+ scenes={filterScenes || AppScenes}
40
+ screenOptions={{
41
+ headerShown: false,
42
+ ...navigationProps?.screenOptions,
43
+ }}
44
+ {...navigationProps}
45
+ />
46
+ // console.log('SCENES_RESULT create', { _ig_scenes, exclude, type, navigationProps, otherProps })
47
+
48
+ return [S, {
49
+ ...otherProps,
50
+ component: Component,
51
+ }]
52
+ }),
53
+ )
54
+
55
+ // console.log('SCENES_RESULT', SCENES_RESULT)
56
+
57
+ return SCENES_RESULT
58
+ }
59
+
@@ -0,0 +1,123 @@
1
+ import {
2
+ ComponentVariants,
3
+ useDefaultComponentStyle,
4
+ } from '@codeleap/common'
5
+ import React, {
6
+ ReactNode,
7
+ } from 'react'
8
+ import { StyleSheet } from 'react-native'
9
+ import { StylesOf } from '../../types/utility'
10
+ import { View } from '../View'
11
+ import { NewMobilePagerStyles, NewPagerComposition } from './styles'
12
+ export * from './styles'
13
+
14
+ type PageProps = {
15
+ isLast: boolean
16
+ isFirst: boolean
17
+ isActive: boolean
18
+ isNext: boolean
19
+ page: number
20
+ index: number
21
+ isPrevious: boolean
22
+ }
23
+
24
+ export type NewPagerProps = {
25
+ variants?: ComponentVariants<typeof NewMobilePagerStyles>['variants']
26
+ styles?: StylesOf<NewPagerComposition>
27
+ children?: (((pageData: PageProps) => ReactNode) | ReactNode)[]
28
+ page?: number
29
+ style?: any
30
+ setPage?: (page: number) => void
31
+ returnEarly?: boolean
32
+ renderPageWrapper?:React.FC<PageProps>
33
+ pageWrapperProps?: any
34
+ }
35
+
36
+ export const NewPager:React.FC<NewPagerProps> = (pagerProps) => {
37
+ const {
38
+
39
+ styles,
40
+ variants,
41
+ page,
42
+ style = {},
43
+ returnEarly = true,
44
+ renderPageWrapper,
45
+ pageWrapperProps = {},
46
+
47
+ } = pagerProps
48
+ let { children } = pagerProps
49
+ let variantStyles = useDefaultComponentStyle<'u:Pager', typeof NewMobilePagerStyles>(
50
+ 'u:Pager',
51
+ {
52
+ styles,
53
+ transform: StyleSheet.flatten,
54
+ variants,
55
+ },
56
+ )
57
+ const nChildren = React.Children.count(children)
58
+
59
+ const lastPage = nChildren - 1
60
+
61
+ children = Array.isArray(children) ? children : [children]
62
+
63
+ const WrapperComponent = renderPageWrapper || View
64
+
65
+ // Reamimated seems to glitch if this is not done
66
+ variantStyles = JSON.parse(JSON.stringify(variantStyles))
67
+
68
+ return (
69
+ <View style={[variantStyles.wrapper, style]} >
70
+ {
71
+ children.map((child:NewPagerProps['children'][number], index) => {
72
+ const isActive = index === page
73
+ const isLast = index === lastPage
74
+ const isFirst = index === 0
75
+ const isNext = index === page + 1
76
+ const isPrevious = index === page - 1
77
+ const shouldRender = isActive || isNext || isPrevious
78
+
79
+ if (!shouldRender && returnEarly) return null
80
+ let pos = 0
81
+
82
+ if (isActive) {
83
+ pos = 1
84
+ } else if (index > page) {
85
+ pos = 2
86
+ } else {
87
+ pos = 0
88
+ }
89
+
90
+ const pageProps = {
91
+ isLast,
92
+ isActive,
93
+ isFirst,
94
+ isNext,
95
+ isPrevious,
96
+ index,
97
+ page,
98
+ }
99
+ console.log({
100
+ child,
101
+ })
102
+ const content = typeof child === 'function' ? child(pageProps) : child
103
+
104
+ const wrapperProps = {
105
+ key: index,
106
+ style: variantStyles.page,
107
+ animated: true,
108
+ transition: variantStyles['page:transition'],
109
+ animate: [variantStyles['page:previous'], variantStyles['page:current'], variantStyles['page:next']][pos],
110
+ ...pageWrapperProps,
111
+ }
112
+
113
+ return (
114
+ <WrapperComponent {...wrapperProps}>
115
+ {content}
116
+ </WrapperComponent>
117
+ )
118
+
119
+ })
120
+ }
121
+ </View>
122
+ )
123
+ }
@@ -0,0 +1,76 @@
1
+ import {
2
+ createDefaultVariantFactory,
3
+ includePresets,
4
+ } from '@codeleap/common'
5
+ import { Easing } from 'react-native'
6
+
7
+ export type NewPagerComposition =
8
+ | 'page'
9
+ | 'page:transition'
10
+ | 'page:previous'
11
+ | 'page:next'
12
+ | 'page:current'
13
+ | 'wrapper'
14
+
15
+ const createPagerStyle = createDefaultVariantFactory<NewPagerComposition>()
16
+
17
+ const presets = includePresets((style) => createPagerStyle(() => ({ wrapper: style })),
18
+ )
19
+ export const defaultPagerTransition = {
20
+ type: 'timing',
21
+ duration: 300,
22
+ easing: Easing.linear,
23
+ }
24
+
25
+ export function pagerAnimation(height, width, translate = 'X', transition = defaultPagerTransition) {
26
+ const translateProp = `translate${translate}`
27
+
28
+ const translateVal = translate === 'X' ? width : height
29
+
30
+ return {
31
+ wrapper: {
32
+ height,
33
+ width,
34
+ overflow: 'hidden',
35
+ },
36
+ 'page:transition': {
37
+ [translateProp]: transition,
38
+ },
39
+ 'page:next': {
40
+ [translateProp]: translateVal,
41
+
42
+ },
43
+ 'page:current': {
44
+ [translateProp]: 0,
45
+ },
46
+ 'page:previous': {
47
+ [translateProp]: -translateVal,
48
+ },
49
+ }
50
+ }
51
+
52
+ export const NewMobilePagerStyles = {
53
+ ...presets,
54
+ default: createPagerStyle((theme) => ({
55
+ page: {
56
+ width: '100%',
57
+ height: '100%',
58
+ position: 'absolute',
59
+ left: 0,
60
+ right: 0,
61
+ bottom: 0,
62
+ top: 0,
63
+ },
64
+ })),
65
+ horizontal: createPagerStyle((Theme) => {
66
+
67
+ const width = Theme.values.width
68
+ const height = Theme.values.height * 0.8
69
+ return pagerAnimation(height, width, 'X')
70
+ }),
71
+ vertical: createPagerStyle((Theme) => {
72
+ const height = Theme.values.height * 0.8
73
+ const width = Theme.values.width
74
+ return pagerAnimation(height, width, 'Y')
75
+ }),
76
+ }