@codeleap/mobile 2.3.5 → 2.3.7

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 (118) hide show
  1. package/dist/components/Text/index.js +1 -1
  2. package/dist/components/Text/index.js.map +1 -1
  3. package/package.json +3 -2
  4. package/src/components/ActionIcon/index.tsx +0 -32
  5. package/src/components/ActionIcon/styles.ts +0 -97
  6. package/src/components/ActivityIndicator/index.tsx +0 -50
  7. package/src/components/ActivityIndicator/styles.ts +0 -68
  8. package/src/components/Animated.tsx +0 -34
  9. package/src/components/AutoComplete/index.tsx +0 -163
  10. package/src/components/AutoComplete/styles.ts +0 -44
  11. package/src/components/Backdrop/index.tsx +0 -48
  12. package/src/components/Backdrop/styles.ts +0 -33
  13. package/src/components/Button/index.tsx +0 -155
  14. package/src/components/Button/styles.ts +0 -129
  15. package/src/components/Calendar/index.tsx +0 -65
  16. package/src/components/Calendar/style.ts +0 -35
  17. package/src/components/Calendar/types.ts +0 -102
  18. package/src/components/Checkbox/index.tsx +0 -91
  19. package/src/components/Checkbox/styles.ts +0 -81
  20. package/src/components/ContentView/index.tsx +0 -63
  21. package/src/components/ContentView/styles.ts +0 -24
  22. package/src/components/Drawer/index.tsx +0 -33
  23. package/src/components/Drawer/styles.ts +0 -43
  24. package/src/components/EmptyPlaceholder/index.tsx +0 -88
  25. package/src/components/EmptyPlaceholder/styles.ts +0 -58
  26. package/src/components/FileInput/index.tsx +0 -181
  27. package/src/components/FileInput/styles.ts +0 -15
  28. package/src/components/Grid/index.tsx +0 -117
  29. package/src/components/Grid/styles.ts +0 -11
  30. package/src/components/Icon/index.tsx +0 -69
  31. package/src/components/Icon/styles.ts +0 -57
  32. package/src/components/Image/index.tsx +0 -91
  33. package/src/components/Image/styles.ts +0 -20
  34. package/src/components/ImageView/Spotlight.tsx +0 -157
  35. package/src/components/ImageView/component.tsx +0 -38
  36. package/src/components/ImageView/index.ts +0 -2
  37. package/src/components/InputLabel/index.tsx +0 -38
  38. package/src/components/InputLabel/styles.ts +0 -19
  39. package/src/components/List/PaginationIndicator.tsx +0 -71
  40. package/src/components/List/index.tsx +0 -114
  41. package/src/components/List/styles.ts +0 -19
  42. package/src/components/Modal/index.tsx +0 -218
  43. package/src/components/Modal/styles.ts +0 -153
  44. package/src/components/MultiSelect/index.tsx +0 -138
  45. package/src/components/MultiSelect/styles.ts +0 -18
  46. package/src/components/MultiSelect/types.ts +0 -42
  47. package/src/components/Navigation/Navigation.tsx +0 -54
  48. package/src/components/Navigation/constants.ts +0 -8
  49. package/src/components/Navigation/index.tsx +0 -3
  50. package/src/components/Navigation/types.ts +0 -35
  51. package/src/components/Navigation/utils.tsx +0 -57
  52. package/src/components/Pager/index.tsx +0 -121
  53. package/src/components/Pager/styles.ts +0 -81
  54. package/src/components/RadioInput/index.tsx +0 -106
  55. package/src/components/RadioInput/styles.ts +0 -67
  56. package/src/components/Scroll/index.tsx +0 -124
  57. package/src/components/Scroll/styles.ts +0 -18
  58. package/src/components/Sections/index.tsx +0 -91
  59. package/src/components/SegmentedControl/index.tsx +0 -204
  60. package/src/components/SegmentedControl/styles.ts +0 -89
  61. package/src/components/Select/index.tsx +0 -167
  62. package/src/components/Select/styles.ts +0 -62
  63. package/src/components/Select/types.ts +0 -43
  64. package/src/components/Slider/Mark.tsx +0 -46
  65. package/src/components/Slider/Thumb.tsx +0 -29
  66. package/src/components/Slider/index.tsx +0 -130
  67. package/src/components/Slider/styles.ts +0 -76
  68. package/src/components/Slider/types.ts +0 -30
  69. package/src/components/Switch/index.tsx +0 -91
  70. package/src/components/Switch/styles.ts +0 -38
  71. package/src/components/Text/index.tsx +0 -123
  72. package/src/components/Text/styles.ts +0 -50
  73. package/src/components/TextInput/index.tsx +0 -319
  74. package/src/components/TextInput/styles.ts +0 -127
  75. package/src/components/Touchable/index.tsx +0 -174
  76. package/src/components/Touchable/styles.ts +0 -28
  77. package/src/components/View/index.tsx +0 -103
  78. package/src/components/View/styles.ts +0 -24
  79. package/src/components/components.ts +0 -42
  80. package/src/components/defaultStyles.ts +0 -62
  81. package/src/components/legacy/Modal/index.tsx +0 -163
  82. package/src/components/legacy/Modal/styles.ts +0 -125
  83. package/src/components/legacy/Pager/index.tsx +0 -242
  84. package/src/components/legacy/Pager/styles.ts +0 -51
  85. package/src/components/legacy/index.ts +0 -2
  86. package/src/modules/documentPicker.ts +0 -7
  87. package/src/modules/fastImage.ts +0 -2
  88. package/src/modules/imageCropPicker.d.ts +0 -497
  89. package/src/modules/index.d.ts +0 -682
  90. package/src/modules/reactNavigation.ts +0 -15
  91. package/src/modules/textInputMask.ts +0 -11
  92. package/src/modules/types/documentPicker.d.ts +0 -215
  93. package/src/modules/types/fileTypes.ts +0 -138
  94. package/src/modules/types/textInputMask.ts +0 -9
  95. package/src/types/index.ts +0 -1
  96. package/src/types/utility.ts +0 -9
  97. package/src/utils/KeyboardAware/context.tsx +0 -75
  98. package/src/utils/KeyboardAware/index.ts +0 -17
  99. package/src/utils/KeyboardAware/keyboardHooks.ts +0 -124
  100. package/src/utils/KeyboardAware/lib/KeyboardAwareFlatList.ts +0 -4
  101. package/src/utils/KeyboardAware/lib/KeyboardAwareHOC.tsx +0 -618
  102. package/src/utils/KeyboardAware/lib/KeyboardAwareInterface.ts +0 -13
  103. package/src/utils/KeyboardAware/lib/KeyboardAwareScrollView.ts +0 -6
  104. package/src/utils/KeyboardAware/lib/KeyboardAwareSectionList.ts +0 -6
  105. package/src/utils/KeyboardAware/types.ts +0 -159
  106. package/src/utils/ModalManager/components.tsx +0 -112
  107. package/src/utils/ModalManager/context.tsx +0 -260
  108. package/src/utils/ModalManager/index.ts +0 -16
  109. package/src/utils/OSAlert.ts +0 -180
  110. package/src/utils/PermissionManager/context.tsx +0 -302
  111. package/src/utils/PermissionManager/index.ts +0 -20
  112. package/src/utils/PermissionManager/types.ts +0 -24
  113. package/src/utils/hooks.ts +0 -163
  114. package/src/utils/index.ts +0 -11
  115. package/src/utils/input.ts +0 -51
  116. package/src/utils/misc.ts +0 -83
  117. package/src/utils/notifications.ts +0 -206
  118. package/src/utils/theme.ts +0 -58
@@ -1,204 +0,0 @@
1
- import React, { ReactElement, useImperativeHandle, useMemo, useRef } from 'react'
2
- import { Scroll, ScrollProps } from '../Scroll'
3
-
4
- import { Easing, EasingFunction, StyleSheet } from 'react-native'
5
- import { FormTypes, getNestedStylesByKey, PropsOf, useDefaultComponentStyle } from '@codeleap/common'
6
- import { SegmentedControlComposition, SegmentedControlStyles } from './styles'
7
- import { Touchable } from '../Touchable'
8
- import { StylesOf } from '../../types/utility'
9
- import { Text, TextProps } from '../Text'
10
- import { KeyboardAwareScrollViewTypes } from '../../modules'
11
- import { View } from '../View'
12
- import { InputLabel } from '../InputLabel'
13
- export * from './styles'
14
- export type SegmentedControlRef =KeyboardAwareScrollViewTypes.KeyboardAwareScrollView & {
15
- scrollTo: (index: number) => void
16
- scrollToCurrent: () => void
17
- }
18
-
19
- export type SegmentedControlProps<T = string> = ScrollProps & {
20
- options : {label: string; value: T }[]
21
- onValueChange: (value: T) => any
22
- value: T
23
- debugName: string
24
- animation?: {
25
- duration?: number
26
- easing?: EasingFunction
27
- }
28
- textProps?: Partial<PropsOf<typeof Text>>
29
- touchableProps?: Partial<PropsOf<typeof Touchable>>
30
- styles?: StylesOf<SegmentedControlComposition>
31
- scrollProps?: any
32
- label?: FormTypes.Label
33
- RenderButton?: (props: SegmentedControlProps & {
34
- touchableProps: PropsOf<typeof Touchable>
35
- textProps: PropsOf<typeof Text>
36
- option: {label: string; value: any}
37
- }) => ReactElement
38
- RenderAnimatedView?: (props: Partial<SegmentedControlProps>) => ReactElement
39
- getItemWidth?: (item:{label: string; value: T }, idx: number, arr: {label: string; value: T }[]) => number
40
- }
41
-
42
- const defaultAnimation = {
43
- type: 'timing',
44
- duration: 200,
45
- easing: Easing.linear,
46
- }
47
-
48
- const _SegmentedControl = React.forwardRef<SegmentedControlRef, SegmentedControlProps>((props, ref) => {
49
- const {
50
- options = [],
51
- onValueChange,
52
- debugName,
53
- label,
54
- value,
55
- styles = {},
56
- animation = {},
57
- variants = [],
58
- scrollProps = {},
59
- getItemWidth = (i) => i.label.length * 20,
60
- RenderAnimatedView,
61
- RenderButton,
62
- } = props
63
-
64
- let _animation = {
65
- ...defaultAnimation, ...animation,
66
- }
67
-
68
- let variantStyles = useDefaultComponentStyle<'u:SegmentedControl', typeof SegmentedControlStyles>('u:SegmentedControl', {
69
- styles,
70
- transform: StyleSheet.flatten,
71
- variants,
72
- })
73
-
74
- const scrollRef = useRef<KeyboardAwareScrollViewTypes.KeyboardAwareScrollView>(null)
75
-
76
- function scrollTo(idx:number) {
77
- if (!scrollRef.current) return
78
- setTimeout(() => {
79
- scrollRef.current?.scrollToPosition?.(widthStyle.width * idx, 0, true)
80
- })
81
- }
82
-
83
- const widthStyle = useMemo(() => {
84
- const sizes = options.map(getItemWidth)
85
- const maxWidth = sizes.sort((a, b) => b - a)[0]
86
-
87
- return { width: maxWidth }
88
- }, [options])
89
-
90
- const currentOptionIdx = options.findIndex(o => o.value === value) || 0
91
-
92
- const translateX = widthStyle.width * currentOptionIdx
93
-
94
- const onPress = (txt:string, idx: number) => {
95
- return () => {
96
- onValueChange(txt)
97
- scrollTo(idx)
98
- }
99
- }
100
-
101
- const hasScrolledInitially = useRef(false)
102
-
103
- useImperativeHandle(ref, () => {
104
- if (!scrollRef.current) return null
105
-
106
- return {
107
- ...(scrollRef.current),
108
- scrollTo,
109
- scrollToCurrent() {
110
- if (!scrollRef.current) return
111
- scrollTo(currentOptionIdx)
112
- },
113
- } as SegmentedControlRef
114
- })
115
-
116
- if (!hasScrolledInitially.current && scrollRef.current) {
117
- scrollTo(currentOptionIdx)
118
- hasScrolledInitially.current = true
119
- }
120
-
121
- const AnimatedView = RenderAnimatedView || View
122
- variantStyles = JSON.parse(JSON.stringify(variantStyles))
123
- _animation = JSON.parse(JSON.stringify(_animation))
124
-
125
- const labelStyles = getNestedStylesByKey('label', variantStyles)
126
- return (<>
127
- <InputLabel label={label} styles={labelStyles} required={false}/>
128
- <Scroll
129
- horizontal
130
- showsHorizontalScrollIndicator={false}
131
- style={variantStyles.scroll}
132
- contentContainerStyle={variantStyles.scrollContent}
133
- {...scrollProps}
134
- keyboardAware={{
135
- enabled: false,
136
- }}
137
- ref={scrollRef}
138
- >
139
- <View style={variantStyles.wrapper}>
140
- <AnimatedView
141
- options={options}
142
- styles={variantStyles}
143
-
144
- animated
145
- style={[variantStyles.selectedBubble, widthStyle]}
146
- animate={{
147
- translateX,
148
- }}
149
- transition={{
150
- translateX: _animation,
151
- }}
152
-
153
- />
154
- {options.map((o, idx) => {
155
- const selected = value === o.value
156
-
157
- const touchableProps = {
158
- key: idx,
159
- debugName: `Segmented Control ${debugName}, option ${o.label}`,
160
- onPress: onPress(o.value, idx),
161
- style: [widthStyle, variantStyles.button],
162
- ...props.touchableProps,
163
-
164
- }
165
-
166
- const textProps:TextProps = {
167
- text: o.label as string,
168
- colorChangeConfig: _animation,
169
- style: StyleSheet.flatten([variantStyles.text, selected && variantStyles['text:selected']]),
170
- animated: true,
171
- ...props.textProps,
172
- }
173
-
174
- if (RenderButton) {
175
- return (
176
- <RenderButton {...props} touchableProps={touchableProps} key={touchableProps.key} textProps={textProps} option={o}/>
177
- )
178
- }
179
- return <Touchable
180
- {...touchableProps}
181
- noFeedback={selected}
182
- key={touchableProps.key}
183
- styles={{
184
- feedback: variantStyles.buttonFeedback,
185
- }}
186
- >
187
- <Text
188
-
189
- {...textProps}
190
- />
191
-
192
- </Touchable>
193
-
194
- })}
195
- </View>
196
- </Scroll>
197
- </>
198
- )
199
-
200
- })
201
-
202
- type SegControlComponent = <T = string>(props: SegmentedControlProps<T> & {ref?: React.Ref<SegmentedControlRef>}) => ReactElement
203
-
204
- export const SegmentedControl = _SegmentedControl as SegControlComponent
@@ -1,89 +0,0 @@
1
- import { createDefaultVariantFactory, includePresets, StylesOf } from '@codeleap/common'
2
- import { InputLabelComposition } from '../InputLabel'
3
- import { TouchableStylesGen } from '../Touchable'
4
-
5
- export type SegmentedControlStates = 'selected'
6
-
7
- export type SegmentedControlComposition =
8
- 'selectedBubble' |
9
- 'wrapper' |
10
- 'scroll' |
11
- 'scrollContent' |
12
- 'text' |
13
- `text:${SegmentedControlStates}` |
14
- 'button' |
15
- 'buttonFeedback' |
16
- `button:${SegmentedControlStates}` |
17
- `label${Capitalize<InputLabelComposition>}`
18
-
19
- export type SegmentedControlStylesGen<TCSS = any> =
20
- StylesOf<
21
- Exclude<SegmentedControlComposition, 'buttonFeedback'>
22
- > & {
23
- buttonFeedback?: TouchableStylesGen['feedback']
24
- }
25
-
26
- const createSegmentedControlStyle = createDefaultVariantFactory<
27
- SegmentedControlComposition,
28
- SegmentedControlStylesGen
29
- >()
30
-
31
- const presets = includePresets((style) => createSegmentedControlStyle(() => ({ scrollContent: style })))
32
-
33
- export const SegmentedControlStyles = {
34
- ...presets,
35
- default: createSegmentedControlStyle((theme) => {
36
-
37
- return {
38
- buttonFeedback: {
39
- type: 'opacity',
40
- value: 0.5,
41
- },
42
- text: {
43
- color: theme.colors.text,
44
- },
45
- 'text:selected': {
46
- color: theme.colors.white,
47
- },
48
- scroll: {
49
- height: theme.values.buttons.default.height,
50
- // borderRadius: Theme.borderRadius.large,
51
- },
52
- scrollContent: {
53
- // borderRadius: Theme.borderRadius.large,
54
- ...theme.presets.row,
55
- ...theme.spacing.paddingHorizontal(2),
56
- ...theme.presets.alignStretch,
57
- },
58
- button: {
59
- backgroundColor: 'transparent',
60
- ...theme.presets.alignCenter,
61
- ...theme.presets.justifyCenter,
62
-
63
- borderRadius: theme.borderRadius.large,
64
- ...theme.spacing.padding(1),
65
- minHeight: '100%',
66
-
67
- },
68
- selectedBubble: {
69
- position: 'absolute',
70
- zIndex: -1,
71
- ...theme.spacing.padding(2),
72
- // maxHeight: 50,
73
- // minHeight: 50,
74
- top: 0,
75
- bottom: 0,
76
- borderRadius: theme.borderRadius.large,
77
- backgroundColor: theme.colors.primary,
78
- },
79
- wrapper: {
80
- borderRadius: theme.borderRadius.large,
81
- backgroundColor: theme.colors.backgroundSecondary,
82
- ...theme.presets.row,
83
- position: 'relative',
84
- },
85
-
86
- }
87
-
88
- }),
89
- }
@@ -1,167 +0,0 @@
1
- import { IconPlaceholder,
2
- getNestedStylesByKey,
3
- useDefaultComponentStyle,
4
- TypeGuards } from '@codeleap/common'
5
- import React, { useMemo } from 'react'
6
- import { StyleSheet } from 'react-native'
7
- import { List } from '../List'
8
- import { Text } from '../Text'
9
- import { TextInput } from '../TextInput'
10
- import { Touchable } from '../Touchable'
11
- import { SelectStyles } from './styles'
12
- import { CustomSelectProps } from './types'
13
- import { ModalManager } from '../../utils'
14
- import { Icon } from '../Icon'
15
-
16
- export const SelectItem = ({ item, icon = null, isSelected, styles, onPress }) => {
17
- return <Touchable style={[
18
- styles.itemWrapper,
19
- isSelected && styles['itemWrapper:selected'],
20
- ]} onPress={onPress} debugName={`Select ${item.value}`}>
21
- <Text text={item.label} style={[
22
- styles.itemText,
23
- isSelected && styles['itemText:selected'],
24
- ]}/>
25
- {icon ? <Icon name={icon} style={[styles?.itemIcon, isSelected && styles?.['itemIcon:selected']]}/> : null}
26
- </Touchable>
27
- }
28
-
29
- export * from './styles'
30
- export const Select = <T extends string|number = string>(selectProps:CustomSelectProps<T>) => {
31
- const {
32
- value,
33
- onValueChange,
34
- label,
35
- styles = {},
36
- options,
37
- style,
38
- variants,
39
- renderItem,
40
- closeOnSelect = true,
41
- listProps,
42
- placeholder = 'Select',
43
- arrowIconName = 'selectArrow',
44
- clearIconName = 'close',
45
- clearable = false,
46
- selectedIcon = 'selectMarker',
47
- inputProps = {},
48
- hideInput = false,
49
-
50
- ...drawerProps
51
- } = selectProps
52
-
53
- const variantStyles = useDefaultComponentStyle<'u:Select', typeof SelectStyles>('u:Select', {
54
- transform: StyleSheet.flatten,
55
- rootElement: 'inputWrapper',
56
- styles,
57
- variants,
58
- })
59
-
60
- const inputStyles = useMemo(
61
- () => getNestedStylesByKey('input', variantStyles),
62
- [variantStyles],
63
- )
64
-
65
- const close = () => drawerProps?.toggle?.()
66
-
67
- const select = (value) => {
68
-
69
- onValueChange(value)
70
- if (closeOnSelect) {
71
- close?.()
72
- }
73
- }
74
-
75
- const selectedLabel:string = useMemo(() => {
76
- const current = options.find(o => o.value === value)
77
-
78
- const display = current?.label ?? placeholder
79
-
80
- return TypeGuards.isString(display) ? display : ''
81
- }, [value, placeholder, options])
82
- const Item = renderItem || SelectItem
83
-
84
- const renderListItem = ({ item }) => {
85
- return <Item
86
- isSelected={value === item.value}
87
- item={item}
88
- onPress={() => select(item.value)}
89
- icon={selectedIcon}
90
- styles={variantStyles}
91
- />
92
- }
93
- const isEmpty = TypeGuards.isNil(value)
94
- const showClearIcon = !isEmpty && clearable
95
-
96
- const inputIcon = showClearIcon ? clearIconName : arrowIconName
97
-
98
- const onPressInputIcon = () => {
99
- if (showClearIcon) {
100
- onValueChange(null)
101
- } else {
102
- close?.()
103
- }
104
-
105
- }
106
-
107
- return <>
108
- {
109
- !hideInput && (
110
- <TextInput
111
- caretHidden
112
- value={selectedLabel}
113
- rightIcon={{
114
- icon: inputIcon as IconPlaceholder,
115
- onPress: onPressInputIcon,
116
- noFeedback: true,
117
- }}
118
- editable={false}
119
- touchableWrapper
120
- onPress={close}
121
- wrapperProps={{
122
- debugName: 'Select',
123
-
124
- }}
125
- pointerEvents={'none'}
126
- label={label}
127
- debugName={'Select input'}
128
- styles={inputStyles}
129
- style={style}
130
- {...inputProps}
131
- />
132
- )
133
- }
134
-
135
- <ModalManager.Drawer
136
- scroll={false}
137
- title={label}
138
- keyboardAware={{
139
- baseStyleProp: 'style',
140
- adapt: 'paddingBottom',
141
- enabled: true,
142
- enableOnAndroid: true,
143
- }}
144
- {...drawerProps}
145
- styles={variantStyles}
146
- >
147
- <List<CustomSelectProps<any>['options']>
148
- data={options}
149
- style={variantStyles.list}
150
- contentContainerStyle={variantStyles.listContent}
151
- keyExtractor={(i) => i.value}
152
- renderItem={renderListItem}
153
- keyboardAware={{
154
- baseStyleProp: 'style',
155
- adapt: 'maxHeight',
156
- enabled: true,
157
- enableOnAndroid: true,
158
- }}
159
- {...listProps}
160
- />
161
- </ModalManager.Drawer>
162
-
163
- </>
164
- }
165
-
166
- export * from './styles'
167
- export * from './types'
@@ -1,62 +0,0 @@
1
- import { createDefaultVariantFactory, TextInputComposition } from '@codeleap/common'
2
- import { DrawerComposition, DrawerStyles } from '../Drawer'
3
- type ItemStates = '' | ':selected'
4
- export type SelectComposition =
5
- DrawerComposition |
6
- `input${TextInputComposition}` |
7
- 'list' |
8
- 'listContent' |
9
- `itemWrapper${ItemStates}` |
10
- `itemText${ItemStates}` |
11
- 'scroll' |
12
- 'scrollContent' |
13
- `itemIcon${ItemStates}`
14
-
15
- const createSelectStyle = createDefaultVariantFactory<SelectComposition>()
16
-
17
- export const SelectStyles = {
18
- ...DrawerStyles,
19
- default: createSelectStyle((theme) => {
20
- const defaultStyle = DrawerStyles.default(theme)
21
-
22
- return {
23
- ...defaultStyle,
24
- box: {
25
- ...theme.spacing.paddingHorizontal(0),
26
-
27
- },
28
- itemWrapper: {
29
- ...theme.presets.row,
30
- ...theme.presets.justifySpaceBetween,
31
- ...theme.presets.alignCenter,
32
- ...theme.spacing.padding(1.4),
33
- height: 50,
34
- },
35
- 'itemWrapper:selected': {
36
- backgroundColor: theme.colors.primary,
37
- },
38
- 'itemText:selected': {
39
- color: theme.colors.white,
40
-
41
- },
42
- 'itemIcon:selected': {
43
- color: theme.colors.white,
44
- ...theme.sized(3),
45
- },
46
- itemIcon: {
47
- width: 0,
48
- height: 0,
49
- },
50
- list: {
51
- height: 'auto',
52
-
53
- maxHeight: theme.values.window.height * 0.75,
54
-
55
- },
56
- // listContent: {
57
- // paddingBottom: theme.values.safeAreaTop,
58
- // },
59
-
60
- }
61
- }),
62
- }
@@ -1,43 +0,0 @@
1
- import {
2
- ComponentVariants,
3
- FormTypes,
4
- IconPlaceholder,
5
- } from '@codeleap/common'
6
- import { StylesOf } from '../../types/utility'
7
- import { GetKeyboardAwarePropsOptions } from '../../utils'
8
- import { DrawerProps } from '../Drawer'
9
- import { FlatListProps } from '../List'
10
- import { TextInputProps } from '../TextInput'
11
- import { SelectComposition, SelectStyles } from './styles'
12
-
13
- export type SelectRenderFNProps<T> = & {
14
- styles: StylesOf<SelectComposition>
15
- onPress: () => void
16
- isSelected?: boolean
17
- item: FormTypes.Options<T>[number]
18
- }
19
-
20
- export type SelectRenderFN<T> = (props: SelectRenderFNProps<T>) => JSX.Element
21
-
22
- type SelectDrawerProps = Omit<DrawerProps, 'variants' | 'styles'>
23
-
24
- export type CustomSelectProps<T> = SelectDrawerProps & {
25
- value: T
26
- placeholder?: FormTypes.Label
27
- label?: FormTypes.Label
28
- options?: FormTypes.Options<T>
29
- onValueChange?: (value: T) => void
30
- renderItem?: SelectRenderFN<T>
31
- styles?: StylesOf<SelectComposition>
32
- style?: any
33
- hideInput?: boolean
34
- selectedIcon?: IconPlaceholder
35
- arrowIconName?: IconPlaceholder
36
- closeOnSelect?: boolean
37
- inputProps?: Partial<TextInputProps>
38
- listProps?: Partial<FlatListProps>
39
- clearable?: boolean
40
- clearIconName?: IconPlaceholder
41
- keyboardAware?: GetKeyboardAwarePropsOptions
42
- } & ComponentVariants<typeof SelectStyles>
43
-
@@ -1,46 +0,0 @@
1
- import React from 'react'
2
- import { StyleProp } from 'react-native'
3
- import { Text } from '../Text'
4
- import { View } from '../View'
5
- import { SliderMarkProps } from './types'
6
- export const SliderMark: React.FC<SliderMarkProps> = ({
7
- index,
8
- sliderProps,
9
- styles,
10
- variantStyles,
11
- }) => {
12
- const { labels = [], showMarks } = sliderProps
13
-
14
- const l = labels?.[index] || ''
15
-
16
- const isFirst = index === 0
17
- const isLast = index === labels.length - 1
18
-
19
- const centerAdjustWord = -(l.length * 2)
20
-
21
- const markStyles: StyleProp<any> = {}
22
-
23
- const labelStyles: StyleProp<any> = {}
24
-
25
- if (!isFirst && !isLast) {
26
- labelStyles.left = centerAdjustWord
27
- }
28
-
29
- if (isLast) {
30
- labelStyles.right = -20
31
- markStyles.right = -10
32
- }
33
- return (
34
- <>
35
- {showMarks ? (
36
- <View style={[markStyles, variantStyles.mark, styles.mark]} />
37
- ) : null}
38
- {l ? (
39
- <Text
40
- style={[labelStyles, variantStyles.trackLabels, styles.trackLabels]}
41
- text={l}
42
- />
43
- ) : null}
44
- </>
45
- )
46
- }
@@ -1,29 +0,0 @@
1
- import React from 'react'
2
- import { StyleSheet } from 'react-native'
3
- import { Text } from '../Text'
4
- import { View } from '../View'
5
- export const ThumbTooltip = ({ children, visible, styles, variantStyles }) => {
6
- return (
7
- <View
8
- style={[
9
- StyleSheet.flatten([variantStyles.tooltip, styles.tooltip]),
10
- visible
11
- ? StyleSheet.flatten([
12
- variantStyles['tooltip:visible'],
13
- styles['tooltip:visible'],
14
- ])
15
- : StyleSheet.flatten([
16
- variantStyles['tooltip:hidden'],
17
- styles['tooltip:hidden'],
18
- ]),
19
- ]}
20
- >
21
- <Text
22
- style={[variantStyles.tooltipText, styles.tooltipText]}
23
- text={children}
24
- />
25
- <View style={[variantStyles.tooltipArrow, styles.tooltipArrow]} />
26
- </View>
27
- )
28
- }
29
-