@codeleap/mobile 1.9.25 → 1.9.28

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 (222) 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 -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/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 -31
  24. package/dist/components/FileInput.js +230 -230
  25. package/dist/components/FileInput.js.map +0 -0
  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 +64 -69
  42. package/dist/components/Modal/styles.js +59 -64
  43. package/dist/components/Modal/styles.js.map +1 -1
  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 +88 -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 -180
  115. package/dist/components/TextInput.js.map +0 -0
  116. package/dist/components/Touchable.d.ts +14 -14
  117. package/dist/components/Touchable.js +75 -75
  118. package/dist/components/Touchable.js.map +0 -0
  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 +28 -25
  123. package/dist/components/components.js +44 -41
  124. package/dist/components/components.js.map +1 -1
  125. package/dist/index.d.ts +6 -5
  126. package/dist/index.js +30 -28
  127. package/dist/index.js.map +1 -1
  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/ModalManager/components.d.ts +12 -0
  148. package/dist/utils/ModalManager/components.js +79 -0
  149. package/dist/utils/ModalManager/components.js.map +1 -0
  150. package/dist/utils/ModalManager/context.d.ts +42 -0
  151. package/dist/utils/ModalManager/context.js +172 -0
  152. package/dist/utils/ModalManager/context.js.map +1 -0
  153. package/dist/utils/ModalManager/index.d.ts +14 -0
  154. package/dist/utils/ModalManager/index.js +12 -0
  155. package/dist/utils/ModalManager/index.js.map +1 -0
  156. package/dist/utils/OSAlert.d.ts +31 -31
  157. package/dist/utils/OSAlert.js +141 -141
  158. package/dist/utils/OSAlert.js.map +0 -0
  159. package/dist/utils/misc.d.ts +2 -2
  160. package/dist/utils/misc.js +25 -25
  161. package/dist/utils/misc.js.map +0 -0
  162. package/dist/utils/styles.d.ts +1 -1
  163. package/dist/utils/styles.js +12 -12
  164. package/dist/utils/styles.js.map +0 -0
  165. package/package.json +43 -40
  166. package/src/components/ActivityIndicator.tsx +46 -46
  167. package/src/components/Animated.tsx +34 -34
  168. package/src/components/Button.tsx +117 -95
  169. package/src/components/Checkbox/index.tsx +85 -85
  170. package/src/components/Checkbox/styles.ts +76 -76
  171. package/src/components/ContentView.tsx +58 -58
  172. package/src/components/EmptyPlaceholder.tsx +53 -0
  173. package/src/components/FileInput.tsx +230 -230
  174. package/src/components/Gap.tsx +40 -0
  175. package/src/components/Icon.tsx +58 -58
  176. package/src/components/Image.tsx +61 -61
  177. package/src/components/List.tsx +116 -111
  178. package/src/components/Modal/index.tsx +162 -161
  179. package/src/components/Modal/styles.ts +126 -133
  180. package/src/components/Navigation/Navigation.tsx +58 -58
  181. package/src/components/Navigation/constants.ts +8 -8
  182. package/src/components/Navigation/index.tsx +3 -3
  183. package/src/components/Navigation/types.ts +35 -35
  184. package/src/components/Navigation/utils.tsx +59 -59
  185. package/src/components/NewPager/index.tsx +121 -0
  186. package/src/components/NewPager/styles.ts +76 -0
  187. package/src/components/Overlay.tsx +77 -77
  188. package/src/components/Pager/index.tsx +242 -242
  189. package/src/components/Pager/styles.ts +51 -51
  190. package/src/components/RadioInput/index.tsx +101 -101
  191. package/src/components/RadioInput/styles.ts +67 -67
  192. package/src/components/Scroll.tsx +106 -106
  193. package/src/components/Sections.tsx +101 -101
  194. package/src/components/Select/index.tsx +195 -195
  195. package/src/components/Select/styles.ts +81 -81
  196. package/src/components/Select/types.ts +46 -46
  197. package/src/components/Slider/Mark.tsx +46 -46
  198. package/src/components/Slider/Thumb.tsx +29 -29
  199. package/src/components/Slider/index.tsx +123 -123
  200. package/src/components/Slider/types.ts +25 -25
  201. package/src/components/Switch.tsx +81 -81
  202. package/src/components/Text.tsx +30 -30
  203. package/src/components/TextInput.tsx +247 -247
  204. package/src/components/Touchable.tsx +78 -78
  205. package/src/components/View.tsx +48 -46
  206. package/src/components/components.ts +28 -26
  207. package/src/index.ts +6 -6
  208. package/src/modules/documentPicker.ts +7 -7
  209. package/src/modules/fastImage.ts +2 -2
  210. package/src/modules/index.d.ts +496 -496
  211. package/src/modules/reactNavigation.ts +4 -4
  212. package/src/modules/textInputMask.ts +9 -9
  213. package/src/modules/types/documentPicker.d.ts +215 -215
  214. package/src/modules/types/fileTypes.ts +138 -138
  215. package/src/modules/types/textInputMask.ts +9 -13
  216. package/src/types/utility.ts +3 -3
  217. package/src/utils/ModalManager/components.tsx +58 -0
  218. package/src/utils/ModalManager/context.tsx +208 -0
  219. package/src/utils/ModalManager/index.ts +9 -0
  220. package/src/utils/OSAlert.ts +180 -180
  221. package/src/utils/misc.ts +24 -24
  222. 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,121 @@
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
+ children,
47
+ } = pagerProps
48
+
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
+ const childArr = React.Children.toArray(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
+ childArr.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
+
100
+ const content = typeof child === 'function' ? child(pageProps) : child
101
+
102
+ const wrapperProps = {
103
+ key: index,
104
+ style: variantStyles.page,
105
+ animated: true,
106
+ transition: variantStyles['page:transition'],
107
+ animate: [variantStyles['page:previous'], variantStyles['page:current'], variantStyles['page:next']][pos],
108
+ ...pageWrapperProps,
109
+ }
110
+
111
+ return (
112
+ <WrapperComponent {...wrapperProps}>
113
+ {content}
114
+ </WrapperComponent>
115
+ )
116
+
117
+ })
118
+ }
119
+ </View>
120
+ )
121
+ }
@@ -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
+ }