@codeleap/web 3.12.22 → 3.13.0-touchable-analytics.0
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.
package/package.json
CHANGED
|
@@ -335,9 +335,11 @@ export const Modal = (props) => {
|
|
|
335
335
|
if (visible) {
|
|
336
336
|
document.body.style.overflowY = 'hidden'
|
|
337
337
|
document.body.style.overflowX = 'hidden'
|
|
338
|
+
document.body.style.maxHeight = '100svh'
|
|
338
339
|
} else {
|
|
339
340
|
document.body.style.overflowY = 'visible'
|
|
340
341
|
document.body.style.overflowX = 'hidden'
|
|
342
|
+
document.body.style.maxHeight = 'unset'
|
|
341
343
|
}
|
|
342
344
|
}, [visible])
|
|
343
345
|
|
|
@@ -273,11 +273,8 @@ export const Select = forwardRef<HTMLInputElement, SelectProps>(
|
|
|
273
273
|
focus: () => {
|
|
274
274
|
innerInputRef.current?.focus?.()
|
|
275
275
|
},
|
|
276
|
-
blur: () => {
|
|
277
|
-
innerInputRef.current?.blur?.()
|
|
278
|
-
},
|
|
279
276
|
}
|
|
280
|
-
}, [!!innerInputRef?.current?.focus
|
|
277
|
+
}, [!!innerInputRef?.current?.focus])
|
|
281
278
|
|
|
282
279
|
const onLoadOptions = async (inputValue, cb) => {
|
|
283
280
|
if (!!loadOptions) {
|
|
@@ -380,7 +377,7 @@ export const Select = forwardRef<HTMLInputElement, SelectProps>(
|
|
|
380
377
|
|
|
381
378
|
const MenuComponent = React.useCallback((props) => {
|
|
382
379
|
return <CustomMenu {...props} Footer={FooterComponent} />
|
|
383
|
-
}, [
|
|
380
|
+
}, [])
|
|
384
381
|
|
|
385
382
|
const MenuListComponent = React.useCallback((props) => {
|
|
386
383
|
return <CustomMenuList {...props} defaultStyles={menuWrapperStyles} />
|
|
@@ -412,7 +409,6 @@ export const Select = forwardRef<HTMLInputElement, SelectProps>(
|
|
|
412
409
|
hideSelectedOptions={false}
|
|
413
410
|
tabSelectsValue={false}
|
|
414
411
|
tabIndex={0}
|
|
415
|
-
backspaceRemovesValue={true}
|
|
416
412
|
{...otherProps}
|
|
417
413
|
{..._props}
|
|
418
414
|
onKeyDown={isFocused ? handleKeyDown : null}
|
|
@@ -21,30 +21,53 @@ export type TouchableProps<T extends ElementType = 'button'> = ComponentPropsWit
|
|
|
21
21
|
debounce?: number
|
|
22
22
|
leadingDebounce?: boolean
|
|
23
23
|
setPressed?: (pressed: boolean) => void
|
|
24
|
+
analyticsEnabled?: boolean
|
|
25
|
+
analyticsName?: string
|
|
26
|
+
analyticsData?: Record<string, any>
|
|
24
27
|
} & ComponentVariants<typeof TouchablePresets>
|
|
25
28
|
|
|
29
|
+
const defaultProps: TouchableProps<'button'> = {
|
|
30
|
+
propagate: true,
|
|
31
|
+
debounce: null,
|
|
32
|
+
component: View,
|
|
33
|
+
style: {},
|
|
34
|
+
styles: {},
|
|
35
|
+
responsiveVariants: {},
|
|
36
|
+
variants: [],
|
|
37
|
+
css: [],
|
|
38
|
+
analyticsEnabled: false,
|
|
39
|
+
analyticsName: null,
|
|
40
|
+
analyticsData: {},
|
|
41
|
+
}
|
|
26
42
|
export const TouchableCP = <T extends NativeHTMLElement = 'button'>(
|
|
27
43
|
touchableProps: TouchableProps<T>,
|
|
28
44
|
ref,
|
|
29
45
|
) => {
|
|
46
|
+
const mergedProps: TouchableProps = {
|
|
47
|
+
...(defaultProps),
|
|
48
|
+
...(touchableProps),
|
|
49
|
+
}
|
|
30
50
|
const {
|
|
31
|
-
propagate
|
|
32
|
-
debounce
|
|
51
|
+
propagate,
|
|
52
|
+
debounce,
|
|
33
53
|
leadingDebounce,
|
|
34
54
|
setPressed,
|
|
35
|
-
component: Component
|
|
55
|
+
component: Component,
|
|
36
56
|
disabled,
|
|
37
57
|
onPress,
|
|
38
58
|
onClick,
|
|
39
59
|
debugName,
|
|
40
60
|
debugComponent,
|
|
41
|
-
style
|
|
42
|
-
styles
|
|
43
|
-
responsiveVariants
|
|
44
|
-
variants
|
|
45
|
-
css
|
|
61
|
+
style,
|
|
62
|
+
styles,
|
|
63
|
+
responsiveVariants,
|
|
64
|
+
variants,
|
|
65
|
+
css,
|
|
66
|
+
analyticsEnabled,
|
|
67
|
+
analyticsName,
|
|
68
|
+
analyticsData,
|
|
46
69
|
...props
|
|
47
|
-
} =
|
|
70
|
+
} = mergedProps
|
|
48
71
|
|
|
49
72
|
const pressed = React.useRef(!!leadingDebounce)
|
|
50
73
|
|
|
@@ -60,7 +83,7 @@ export const TouchableCP = <T extends NativeHTMLElement = 'button'>(
|
|
|
60
83
|
responsiveVariants,
|
|
61
84
|
variants,
|
|
62
85
|
styles,
|
|
63
|
-
rootElement: 'wrapper'
|
|
86
|
+
rootElement: 'wrapper',
|
|
64
87
|
})
|
|
65
88
|
|
|
66
89
|
const { logger } = useCodeleapContext()
|
|
@@ -76,7 +99,7 @@ export const TouchableCP = <T extends NativeHTMLElement = 'button'>(
|
|
|
76
99
|
logger.warn(
|
|
77
100
|
'No onPress passed to touchable',
|
|
78
101
|
touchableProps,
|
|
79
|
-
'User interaction'
|
|
102
|
+
'User interaction',
|
|
80
103
|
)
|
|
81
104
|
return
|
|
82
105
|
}
|
|
@@ -85,8 +108,14 @@ export const TouchableCP = <T extends NativeHTMLElement = 'button'>(
|
|
|
85
108
|
logger.log(
|
|
86
109
|
`<${debugComponent || 'Touchable'}/> pressed`,
|
|
87
110
|
{ debugName, debugComponent },
|
|
88
|
-
'User interaction'
|
|
111
|
+
'User interaction',
|
|
89
112
|
)
|
|
113
|
+
if (analyticsEnabled) {
|
|
114
|
+
const name = analyticsName || debugName
|
|
115
|
+
if (!!name?.trim?.()) {
|
|
116
|
+
logger.analytics?.interaction(name, analyticsData)
|
|
117
|
+
}
|
|
118
|
+
}
|
|
90
119
|
|
|
91
120
|
if (TypeGuards.isFunction(onClick)) onClick?.(event)
|
|
92
121
|
onPress?.()
|
|
@@ -127,6 +156,8 @@ export const TouchableCP = <T extends NativeHTMLElement = 'button'>(
|
|
|
127
156
|
)
|
|
128
157
|
}
|
|
129
158
|
|
|
130
|
-
export const Touchable = forwardRef(TouchableCP) as <T extends NativeHTMLElement = 'button'>(
|
|
159
|
+
export const Touchable = forwardRef(TouchableCP) as (<T extends NativeHTMLElement = 'button'>(
|
|
131
160
|
touchableProps: TouchableProps<T>
|
|
132
|
-
) => JSX.Element
|
|
161
|
+
) => JSX.Element) & {
|
|
162
|
+
defaultProps: Partial<TouchableProps<'button'>>
|
|
163
|
+
}
|