@momo-kits/foundation 0.81.43-tracking.6 → 0.81.43-tracking.8

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.
@@ -69,7 +69,9 @@ const StackScreen: React.FC<ScreenParams> = props => {
69
69
  value={{
70
70
  ...context,
71
71
  screenName: Component.name,
72
- autoTracking: navigator?.maxApi?.autoTracking,
72
+ autoTracking: (data: any) => {
73
+ navigator?.maxApi?.dispatchFunction?.('autoTracking', data);
74
+ },
73
75
  }}>
74
76
  <Component heightHeader={heightHeader} {...params} />
75
77
  {showGrid && <GridSystem />}
package/Button/index.tsx CHANGED
@@ -74,9 +74,9 @@ export interface ButtonProps extends TouchableOpacityProps {
74
74
  */
75
75
  onPress: () => void;
76
76
 
77
- trackingParams?: any;
77
+ params?: any;
78
78
 
79
- component_id?: string;
79
+ componentId?: string;
80
80
  }
81
81
 
82
82
  const Button: FC<ButtonProps> = ({
@@ -89,8 +89,8 @@ const Button: FC<ButtonProps> = ({
89
89
  loading = false,
90
90
  title = 'Button',
91
91
  onPress,
92
- trackingParams,
93
- component_id,
92
+ params,
93
+ componentId,
94
94
  ...rest
95
95
  }) => {
96
96
  const {theme, config} = useContext(ApplicationContext);
@@ -306,9 +306,9 @@ const Button: FC<ButtonProps> = ({
306
306
  value={{
307
307
  ...screenInfo,
308
308
  componentName: 'Button',
309
- params: trackingParams,
309
+ params,
310
310
  state: type === 'disabled' ? 'disabled' : 'enabled',
311
- component_id,
311
+ componentId,
312
312
  }}>
313
313
  <TouchableOpacity
314
314
  {...rest}
@@ -6,10 +6,6 @@ import {ApplicationContext} from '../Application';
6
6
  import {Text} from '../Text';
7
7
  import {Icon} from '../Icon';
8
8
 
9
- const {
10
- ScreenContext,
11
- } = require('react-native/Libraries/Components/ScreenContext');
12
-
13
9
  const CheckBox: FC<CheckBoxProps> = ({
14
10
  value,
15
11
  disabled,
@@ -23,7 +19,6 @@ const CheckBox: FC<CheckBoxProps> = ({
23
19
  const iconSource = indeterminate ? 'ic_minus' : 'ic_checked';
24
20
  let borderColor = theme.colors.text.default;
25
21
  let backgroundColor = theme.colors.background.surface;
26
- const screenInfo = useContext<any>(ScreenContext);
27
22
 
28
23
  if (haveValue) {
29
24
  borderColor = theme.colors.primary;
@@ -40,35 +35,27 @@ const CheckBox: FC<CheckBoxProps> = ({
40
35
  }
41
36
 
42
37
  return (
43
- <ScreenContext.Provider
44
- value={{
45
- ...screenInfo,
46
- componentName: 'CheckBox',
47
- params: {
48
- value,
49
- },
50
- }}>
51
- <TouchableOpacity
52
- activeOpacity={0.8}
53
- onPress={() => onChange?.(!value)}
54
- disabled={disabled}
55
- style={[style, styles.container]}>
56
- <View
57
- style={[
58
- {borderColor, backgroundColor, borderWidth: 1},
59
- styles.checkbox,
60
- ]}>
61
- {haveValue && (
62
- <Icon
63
- color={theme.colors.background.surface}
64
- size={20}
65
- source={iconSource}
66
- />
67
- )}
68
- </View>
69
- {!!label && <Text typography={'body_default_regular'}>{label}</Text>}
70
- </TouchableOpacity>
71
- </ScreenContext.Provider>
38
+ <TouchableOpacity
39
+ accessibilityLabel={`CheckBox/${label}/${value}`}
40
+ activeOpacity={0.8}
41
+ onPress={() => onChange?.(!value)}
42
+ disabled={disabled}
43
+ style={[style, styles.container]}>
44
+ <View
45
+ style={[
46
+ {borderColor, backgroundColor, borderWidth: 1},
47
+ styles.checkbox,
48
+ ]}>
49
+ {haveValue && (
50
+ <Icon
51
+ color={theme.colors.background.surface}
52
+ size={20}
53
+ source={iconSource}
54
+ />
55
+ )}
56
+ </View>
57
+ {!!label && <Text typography={'body_default_regular'}>{label}</Text>}
58
+ </TouchableOpacity>
72
59
  );
73
60
  };
74
61
 
package/Input/Input.tsx CHANGED
@@ -42,8 +42,8 @@ const Input = forwardRef(
42
42
  fontWeight = 'Regular',
43
43
  onPressIcon,
44
44
  style,
45
- trackingParams,
46
- component_id,
45
+ params,
46
+ componentId,
47
47
  ...props
48
48
  }: InputProps,
49
49
  ref,
@@ -171,9 +171,9 @@ const Input = forwardRef(
171
171
  value={{
172
172
  ...screenInfo,
173
173
  componentName: 'Input',
174
- params: trackingParams,
174
+ params,
175
175
  state: disabled ? 'disabled' : 'enabled',
176
- component_id,
176
+ componentId,
177
177
  }}>
178
178
  <View
179
179
  style={[style, styles.wrapper]}
@@ -1,4 +1,10 @@
1
- import React, {forwardRef, useContext, useRef, useState} from 'react';
1
+ import React, {
2
+ forwardRef,
3
+ useContext,
4
+ useImperativeHandle,
5
+ useRef,
6
+ useState,
7
+ } from 'react';
2
8
  import {
3
9
  NativeSyntheticEvent,
4
10
  TextInput,
@@ -34,9 +40,9 @@ const InputMoney = forwardRef(
34
40
  required = false,
35
41
  errorSpacing,
36
42
  style,
37
- trackingParams,
43
+ params,
38
44
  defaultValue = '',
39
- component_id,
45
+ componentId,
40
46
  ...props
41
47
  }: InputMoneyProps,
42
48
  ref,
@@ -70,6 +76,12 @@ const InputMoney = forwardRef(
70
76
  onChangeText?.(formatMoneyToNumber(text, 'đ').toString());
71
77
  };
72
78
 
79
+ useImperativeHandle(ref, () => {
80
+ return {
81
+ setText: _onChangeText,
82
+ };
83
+ });
84
+
73
85
  const _onFocus = (e: NativeSyntheticEvent<TextInputFocusEventData>) => {
74
86
  setFocused(true);
75
87
  onFocus?.(e);
@@ -153,9 +165,9 @@ const InputMoney = forwardRef(
153
165
  value={{
154
166
  ...screenInfo,
155
167
  componentName: 'InputMoney',
156
- params: trackingParams,
168
+ params,
157
169
  state: 'enable',
158
- component_id,
170
+ componentId,
159
171
  }}>
160
172
  <View
161
173
  style={[style, styles.wrapper]}
@@ -82,9 +82,9 @@ const InputOTP = forwardRef(
82
82
  onFocus,
83
83
  onBlur,
84
84
  dataType = 'number',
85
- trackingParams,
85
+ params,
86
86
  style,
87
- component_id,
87
+ componentId,
88
88
  ...props
89
89
  }: InputOTPProps,
90
90
  ref,
@@ -234,9 +234,9 @@ const InputOTP = forwardRef(
234
234
  value={{
235
235
  ...screenInfo,
236
236
  componentName: 'InputOTP',
237
- params: trackingParams,
237
+ params,
238
238
  state: 'enable',
239
- component_id,
239
+ componentId,
240
240
  }}>
241
241
  <TouchableOpacity
242
242
  activeOpacity={1}
@@ -33,9 +33,8 @@ const InputSearch = forwardRef(
33
33
  style,
34
34
  defaultValue,
35
35
  onPressButtonText,
36
- trackingParams,
37
- component_id,
38
-
36
+ params,
37
+ componentId,
39
38
  ...props
40
39
  }: InputSearchProps,
41
40
  ref,
@@ -131,9 +130,9 @@ const InputSearch = forwardRef(
131
130
  value={{
132
131
  ...screenInfo,
133
132
  componentName: 'InputSearch',
134
- params: trackingParams,
133
+ params,
135
134
  state: 'enabled',
136
- component_id,
135
+ componentId,
137
136
  }}>
138
137
  <View
139
138
  style={[style, styles.searchInputContainer]}
package/Input/index.tsx CHANGED
@@ -81,8 +81,8 @@ export interface InputProps extends TextInputProps {
81
81
 
82
82
  onPressIcon?: () => void;
83
83
 
84
- trackingParams?: any;
85
- component_id?: string;
84
+ params?: any;
85
+ componentId?: string;
86
86
  }
87
87
 
88
88
  type InputPropsWithoutSizeAndIcon = Omit<
@@ -130,9 +130,9 @@ export interface InputSearchProps extends TextInputProps {
130
130
  */
131
131
  icon?: string;
132
132
 
133
- trackingParams?: any;
133
+ params?: any;
134
134
 
135
- component_id?: string;
135
+ componentId?: string;
136
136
  }
137
137
 
138
138
  export interface InputMoneyProps extends InputPropsWithoutPlaceholder {}
package/Radio/index.tsx CHANGED
@@ -7,10 +7,6 @@ import styles from './styles';
7
7
  import {ApplicationContext} from '../Application';
8
8
  import {Spacing} from '../Consts';
9
9
 
10
- const {
11
- ScreenContext,
12
- } = require('react-native/Libraries/Components/ScreenContext');
13
-
14
10
  const Radio: FC<RadioProps> = ({
15
11
  value,
16
12
  groupValue,
@@ -41,38 +37,28 @@ const Radio: FC<RadioProps> = ({
41
37
  };
42
38
  }
43
39
 
44
- const screenInfo = useContext<any>(ScreenContext);
45
-
46
40
  return (
47
- <ScreenContext.Provider
48
- value={{
49
- ...screenInfo,
50
- componentName: 'Radio',
51
- params: {
52
- value,
41
+ <TouchableOpacity
42
+ accessibilityLabel={`Radio/${label}/${value}`}
43
+ onPress={onChange}
44
+ disabled={disabled}
45
+ style={[
46
+ style,
47
+ {
48
+ flexDirection: 'row',
49
+ alignItems: 'center',
53
50
  },
54
- }}>
55
- <TouchableOpacity
56
- onPress={onChange}
57
- disabled={disabled}
51
+ ]}>
52
+ <View
58
53
  style={[
59
- style,
60
- {
61
- flexDirection: 'row',
62
- alignItems: 'center',
63
- },
64
- ]}>
65
- <View
66
- style={[
67
- styles.radio,
68
- checkBoxStyle,
69
- disabledStyle,
70
- {marginRight: label ? Spacing.XS : 0},
71
- ]}
72
- />
73
- {!!label && <Text typography={'body_default_regular'}>{label}</Text>}
74
- </TouchableOpacity>
75
- </ScreenContext.Provider>
54
+ styles.radio,
55
+ checkBoxStyle,
56
+ disabledStyle,
57
+ {marginRight: label ? Spacing.XS : 0},
58
+ ]}
59
+ />
60
+ {!!label && <Text typography={'body_default_regular'}>{label}</Text>}
61
+ </TouchableOpacity>
76
62
  );
77
63
  };
78
64
 
package/Switch/index.tsx CHANGED
@@ -1,18 +1,13 @@
1
- import React, {FC, useContext} from 'react';
1
+ import React, {FC} from 'react';
2
2
  import {TouchableOpacity, View} from 'react-native';
3
3
  import {SwitchProps} from './types';
4
4
  import styles from './styles';
5
5
  import {Colors} from '../Consts';
6
6
 
7
- const {
8
- ScreenContext,
9
- } = require('react-native/Libraries/Components/ScreenContext');
10
-
11
7
  const Switch: FC<SwitchProps> = props => {
12
8
  const {value, onChange, disabled, style} = props;
13
9
  const circleBackgroundColor = value ? Colors.black_01 : Colors.black_03;
14
10
  const circleAlign = value ? 'flex-end' : 'flex-start';
15
- const screenInfo = useContext<any>(ScreenContext);
16
11
 
17
12
  let backgroundColor = value ? Colors.green_03 : Colors.black_07;
18
13
  if (disabled) {
@@ -20,27 +15,19 @@ const Switch: FC<SwitchProps> = props => {
20
15
  }
21
16
 
22
17
  return (
23
- <ScreenContext.Provider
24
- value={{
25
- ...screenInfo,
26
- componentName: 'Switch',
27
- params: {
28
- value,
29
- },
30
- }}>
31
- <TouchableOpacity
32
- disabled={disabled}
33
- onPress={() => onChange?.(!value)}
34
- style={[
35
- style,
36
- styles.container,
37
- {backgroundColor, alignItems: circleAlign},
38
- ]}>
39
- <View style={[styles.circle, {backgroundColor: circleBackgroundColor}]}>
40
- <View style={[styles.circleSmall, {backgroundColor}]} />
41
- </View>
42
- </TouchableOpacity>
43
- </ScreenContext.Provider>
18
+ <TouchableOpacity
19
+ accessibilityLabel={'Switch'}
20
+ disabled={disabled}
21
+ onPress={() => onChange?.(!value)}
22
+ style={[
23
+ style,
24
+ styles.container,
25
+ {backgroundColor, alignItems: circleAlign},
26
+ ]}>
27
+ <View style={[styles.circle, {backgroundColor: circleBackgroundColor}]}>
28
+ <View style={[styles.circleSmall, {backgroundColor}]} />
29
+ </View>
30
+ </TouchableOpacity>
44
31
  );
45
32
  };
46
33
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momo-kits/foundation",
3
- "version": "0.81.43-tracking.6",
3
+ "version": "0.81.43-tracking.8",
4
4
  "description": "React Native Component Kits",
5
5
  "main": "index.ts",
6
6
  "scripts": {