@momo-kits/foundation 0.81.43-tracking.9 → 0.81.48

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.
@@ -104,7 +104,6 @@ const BottomTab: React.FC<BottomTabProps> = ({
104
104
  left: item?.showDot ? 8 : 4,
105
105
  top: item?.showDot ? -2 : -6,
106
106
  },
107
-
108
107
  tabBarIcon: ({color}) => (
109
108
  <Icon source={item.icon} color={color} size={28} />
110
109
  ),
@@ -35,7 +35,6 @@ const NavigationButton: React.FC<NavigationButtonProps> = ({
35
35
  tintColor,
36
36
  onPress,
37
37
  useBorder = true,
38
- accessibilityLabel,
39
38
  badgeType,
40
39
  badgeValue,
41
40
  }) => {
@@ -67,7 +66,6 @@ const NavigationButton: React.FC<NavigationButtonProps> = ({
67
66
  return (
68
67
  <View style={{width: scaleSize(28)}}>
69
68
  <TouchableOpacity
70
- accessibilityLabel={`NavigationButton/${accessibilityLabel}`}
71
69
  style={[styles.navigationButton, buttonStyle]}
72
70
  onPress={onPress}>
73
71
  <Icon
@@ -81,7 +79,7 @@ const NavigationButton: React.FC<NavigationButtonProps> = ({
81
79
  );
82
80
  };
83
81
 
84
- const HeaderTitle: React.FC<any> = ({accessibilityLabel = '', ...props}) => {
82
+ const HeaderTitle: React.FC<any> = props => {
85
83
  const {theme} = useContext(ApplicationContext);
86
84
  const opacity = props.animatedValue?.interpolate({
87
85
  inputRange: [0, 200],
@@ -92,7 +90,6 @@ const HeaderTitle: React.FC<any> = ({accessibilityLabel = '', ...props}) => {
92
90
  return (
93
91
  <Animated.Text
94
92
  {...props}
95
- accessibilityLabel={`HeaderTitle/${accessibilityLabel}${props.children}`}
96
93
  style={[
97
94
  styles.title,
98
95
  {fontFamily: `${theme.font}-Bold`, opacity, color: props.tintColor},
@@ -106,7 +103,6 @@ const HeaderLeft: React.FC<HeaderBackProps> = ({
106
103
  preventBack,
107
104
  onPressLeftHeader,
108
105
  useBorder,
109
- accessibilityLabel = '',
110
106
  }) => {
111
107
  const context = useContext(MiniAppContext);
112
108
  const {navigator} = useContext(ApplicationContext);
@@ -171,7 +167,6 @@ const HeaderLeft: React.FC<HeaderBackProps> = ({
171
167
  icon="ic_back"
172
168
  tintColor={tintColor}
173
169
  onPress={goBackSafe}
174
- accessibilityLabel={`${accessibilityLabel}Back`}
175
170
  useBorder={useBorder}
176
171
  />
177
172
  </View>
@@ -288,9 +283,11 @@ const HeaderRightAction: React.FC<any> = ({children, ...restProps}) => {
288
283
  const HeaderToolkitAction: React.FC<any> = ({
289
284
  tintColor,
290
285
  pinnedTool,
286
+ runtimeTools = [],
291
287
  preventBack,
292
288
  }) => {
293
289
  const {theme, navigator} = useContext(ApplicationContext);
290
+ const miniContext = useContext(MiniAppContext);
294
291
  const [toolConfig, setToolConfig] = useState<any>();
295
292
  const {onAction} = toolConfig ?? {};
296
293
 
@@ -300,10 +297,12 @@ const HeaderToolkitAction: React.FC<any> = ({
300
297
  }
301
298
 
302
299
  useEffect(() => {
303
- if (navigator?.toolkitConfig) {
304
- setToolConfig(navigator?.toolkitConfig);
305
- } else {
306
- getToolkitConfig();
300
+ if (miniContext?.toolkitConfig?.hidden === false) {
301
+ if (navigator?.toolkitConfig) {
302
+ setToolConfig(navigator?.toolkitConfig);
303
+ } else {
304
+ getToolkitConfig();
305
+ }
307
306
  }
308
307
  }, []);
309
308
 
@@ -322,7 +321,7 @@ const HeaderToolkitAction: React.FC<any> = ({
322
321
  onAction?.('onMore');
323
322
  navigator?.maxApi?.dispatchFunction?.(
324
323
  'showTools',
325
- [undefined],
324
+ {runtimeTools},
326
325
  (res: {item: {action?: string; key: string}}) => {
327
326
  const {item} = res;
328
327
  navigator?.toolkitCallback?.(item);
@@ -364,7 +363,6 @@ const HeaderToolkitAction: React.FC<any> = ({
364
363
  if (pinTool)
365
364
  return (
366
365
  <NavigationButton
367
- accessibilityLabel={'UtilityTool'}
368
366
  icon={pinTool.icon as string}
369
367
  tintColor={tintColor}
370
368
  badgeValue={badgeValue}
@@ -395,15 +393,11 @@ const HeaderToolkitAction: React.FC<any> = ({
395
393
  borderWidth: backgroundColor ? 0.5 : 0,
396
394
  },
397
395
  ]}>
398
- <TouchableOpacity
399
- accessibilityLabel={'Toolkit/More'}
400
- onPress={onMore}>
396
+ <TouchableOpacity onPress={onMore}>
401
397
  <Icon color={tintColor} source="navigation_more_horiz" size={20} />
402
398
  </TouchableOpacity>
403
399
  <View style={[styles.divider, {backgroundColor: tintColor}]} />
404
- <TouchableOpacity
405
- accessibilityLabel={`Toolkit/Close`}
406
- onPress={onClose}>
400
+ <TouchableOpacity onPress={onClose}>
407
401
  <Icon
408
402
  color={tintColor}
409
403
  source="16_navigation_close_circle"
@@ -74,7 +74,7 @@ const Modal: React.FC<ModalParams> = props => {
74
74
  style={styles.modalSpaceVertical}
75
75
  onPress={() => onDismiss()}
76
76
  />
77
- <View style={styles.modalContent} accessibilityLabel={'Modal'}>
77
+ <View style={styles.modalContent}>
78
78
  <Component {...params} />
79
79
  </View>
80
80
  <Pressable
@@ -167,7 +167,7 @@ const BottomSheet: React.FC<BottomSheetParams> = props => {
167
167
  bottomInset={Platform.OS === 'ios' ? bottomInset : 0}
168
168
  handleComponent={null}
169
169
  backdropComponent={backdropComponent}>
170
- <BottomSheetView accessibilityLabel={'BottomSheet'}>
170
+ <BottomSheetView>
171
171
  <View style={[styles.sheetContainer, {backgroundColor}]}>
172
172
  <View style={styles.indicatorContainer}>
173
173
  <View
@@ -189,22 +189,11 @@ const BottomSheet: React.FC<BottomSheetParams> = props => {
189
189
  ...{
190
190
  headerLeft: (props: any) => {
191
191
  if (props.canGoBack) {
192
- return (
193
- <HeaderLeft
194
- {...props}
195
- useBorder={false}
196
- accessibilityLabel={'BottomSheet/'}
197
- />
198
- );
192
+ return <HeaderLeft {...props} useBorder={false} />;
199
193
  }
200
194
  },
201
195
  headerTitle: (props: any) => {
202
- return (
203
- <HeaderTitle
204
- {...props}
205
- accessibilityLabel={'BottomSheet/'}
206
- />
207
- );
196
+ return <HeaderTitle {...props} />;
208
197
  },
209
198
  headerTintColor: theme.colors.text.default,
210
199
  headerBackground: () => (
@@ -220,7 +209,6 @@ const BottomSheet: React.FC<BottomSheetParams> = props => {
220
209
  icon="24_navigation_close"
221
210
  useBorder={false}
222
211
  onPress={() => bottomSheetRef.current?.dismiss()}
223
- accessibilityLabel={'BottomSheet/Close'}
224
212
  />
225
213
  </HeaderRightAction>
226
214
  ),
@@ -1,4 +1,4 @@
1
- import React, {useEffect, useRef, useState} from 'react';
1
+ import React, {useContext, useEffect, useRef, useState} from 'react';
2
2
  import {BottomSheetModalProvider} from '@gorhom/bottom-sheet';
3
3
  import {SafeAreaProvider} from 'react-native-safe-area-context';
4
4
  import {
@@ -6,13 +6,13 @@ import {
6
6
  NavigationContainerRef,
7
7
  } from '@react-navigation/native';
8
8
  import {createStackNavigator} from '@react-navigation/stack';
9
- import {DeviceEventEmitter, NativeModules} from 'react-native';
9
+ import {DeviceEventEmitter} from 'react-native';
10
10
  import StackScreen from './StackScreen';
11
11
  import ModalScreen from './ModalScreen';
12
12
  import Navigator from './Navigator';
13
13
  import {getDialogOptions, getModalOptions, getStackOptions} from './utils';
14
14
  import {LocalizationObject, NavigationContainerProps} from './types';
15
- import {ApplicationContext} from './index';
15
+ import {ApplicationContext, MiniAppContext} from './index';
16
16
  import kitLocalization from '../Assets/language.json';
17
17
 
18
18
  const Stack = createStackNavigator();
@@ -24,41 +24,25 @@ const NavigationContainer: React.FC<NavigationContainerProps> = ({
24
24
  maxApi,
25
25
  localization,
26
26
  }) => {
27
+ const context = useContext(MiniAppContext);
27
28
  const navigationRef = React.useRef<NavigationContainerRef>(null);
28
29
  const navigator = useRef(new Navigator(navigationRef));
29
30
  const [showGrid, setShowGrid] = useState(false);
30
- const [language, setLanguage] = useState<'vi' | 'en'>('vi');
31
- const [config, setConfig] = useState<any>(undefined);
32
- let assets = theme.assets;
33
- if (config && theme.assets?.headerBackground) {
34
- assets = {...assets, headerBackground: config.navigationBar?.headerBar};
35
- }
31
+ const config = useRef<any>();
36
32
 
37
33
  /**
38
34
  * handle mini language & listen change
39
35
  * engine only shake to enable grid view
40
36
  */
41
37
  useEffect(() => {
42
- maxApi?.getLanguage?.((lang: 'vi' | 'en') => {
43
- setLanguage(lang);
44
- });
45
- const listener = maxApi?.observer?.('language', (lang: 'vi' | 'en') => {
46
- setLanguage(lang);
47
- });
48
38
  const subscription = DeviceEventEmitter.addListener(
49
39
  'onChangeGrid',
50
40
  enable => {
51
41
  setShowGrid(!!enable);
52
42
  },
53
43
  );
54
- try {
55
- const result = JSON.parse(
56
- NativeModules?.ConfigsModule?.getConfigSync?.('DESIGN_SYSTEM'),
57
- );
58
- setConfig(result);
59
- } catch (e) {}
44
+
60
45
  return () => {
61
- listener?.remove?.();
62
46
  subscription?.remove?.();
63
47
  };
64
48
  }, []);
@@ -73,6 +57,7 @@ const NavigationContainer: React.FC<NavigationContainerProps> = ({
73
57
  * @param key
74
58
  */
75
59
  const translate = (key: string) => {
60
+ const language: 'vi' | 'en' = context?.language ?? 'vi';
76
61
  const mergedLocalization: LocalizationObject = {
77
62
  vi: {...localization?.vi, ...kitLocalization.vi},
78
63
  en: {...localization?.en, ...kitLocalization.en},
@@ -85,14 +70,10 @@ const NavigationContainer: React.FC<NavigationContainerProps> = ({
85
70
  <BottomSheetModalProvider>
86
71
  <ApplicationContext.Provider
87
72
  value={{
88
- theme: {
89
- ...theme,
90
- assets: assets,
91
- },
92
73
  navigator: navigator.current,
74
+ config: config.current,
75
+ theme,
93
76
  showGrid,
94
- language,
95
- config,
96
77
  translate,
97
78
  }}>
98
79
  <ReactNavigationContainer
@@ -109,6 +109,18 @@ class Navigator {
109
109
  );
110
110
  };
111
111
 
112
+ /**
113
+ * dismiss a feature data
114
+ * @param data
115
+ */
116
+ setDismissData = (data: any) => {
117
+ this.dismissData = data;
118
+ };
119
+
120
+ /**
121
+ * set callback function for toolkit
122
+ * @param callback
123
+ */
112
124
  setToolkitCallback = (
113
125
  callback: (item: {key: string; action: string}) => void,
114
126
  ) => {
@@ -5,10 +5,6 @@ import {ApplicationContext, MiniAppContext} from './index';
5
5
  import {GridSystem} from '../Layout';
6
6
  import {useHeaderHeight} from '@react-navigation/stack';
7
7
 
8
- const {
9
- ScreenContext,
10
- } = require('react-native/Libraries/Components/ScreenContext');
11
-
12
8
  const StackScreen: React.FC<ScreenParams> = props => {
13
9
  const {theme, showGrid, navigator} = useContext(ApplicationContext);
14
10
  const context = useContext(MiniAppContext);
@@ -65,17 +61,10 @@ const StackScreen: React.FC<ScreenParams> = props => {
65
61
  }, []);
66
62
 
67
63
  return (
68
- <ScreenContext.Provider
69
- value={{
70
- ...context,
71
- screenName: Component.name,
72
- autoTracking: (data: any) => {
73
- navigator?.maxApi?.dispatchFunction?.('autoTracking', data);
74
- },
75
- }}>
64
+ <>
76
65
  <Component heightHeader={heightHeader} {...params} />
77
66
  {showGrid && <GridSystem />}
78
- </ScreenContext.Provider>
67
+ </>
79
68
  );
80
69
  };
81
70
 
@@ -67,7 +67,6 @@ export type Context = {
67
67
  theme: Theme;
68
68
  navigator?: Navigator;
69
69
  showGrid?: boolean;
70
- language?: 'vi' | 'en';
71
70
  translate?: (key: string) => string;
72
71
  };
73
72
 
@@ -77,7 +76,7 @@ export type MiniAppInfo = {
77
76
  appId: string;
78
77
  buildNumber: number;
79
78
  flowPartnerId?: string;
80
- toolkitConfig?: object;
79
+ toolkitConfig?: any;
81
80
  fromCode?: string;
82
81
  };
83
82
 
@@ -128,7 +127,6 @@ export type NavigationButtonProps = {
128
127
  tintColor?: string;
129
128
  useBorder?: boolean;
130
129
  onPress: () => void;
131
- accessibilityLabel?: string;
132
130
  badgeType?: 'dot' | 'number';
133
131
  badgeValue?: number;
134
132
  };
@@ -139,19 +137,27 @@ export type PinnedToolType = {
139
137
  badgeType?: 'number' | 'dot';
140
138
  };
141
139
 
140
+ export type RuntimeToolType = {
141
+ title: {vi: string; en: string};
142
+ icon: string;
143
+ key: string;
144
+ };
145
+
142
146
  export interface NavigationOptions extends StackNavigationOptions {
143
147
  preventBack?: PopupNotifyProps;
144
148
  onPressLeftHeader?: () => void;
145
149
  surface?: boolean;
146
150
  hiddenBack?: boolean;
147
151
  customTitle?: TitleCustomProps;
148
- pinnedTool?: PinnedToolType;
152
+ toolkitParams?: {
153
+ pinnedTool?: PinnedToolType;
154
+ runtimeTools?: RuntimeToolType[];
155
+ };
149
156
  }
150
157
 
151
158
  export interface HeaderBackProps extends NavigationButtonProps {
152
159
  preventBack?: PopupNotifyProps;
153
160
  onPressLeftHeader?: () => void;
154
- accessibilityLabel?: string;
155
161
  }
156
162
 
157
163
  export type HeaderBackgroundProps = {
@@ -126,20 +126,19 @@ const getOptions = (params: NavigationOptions, theme: Theme) => {
126
126
  };
127
127
  }
128
128
 
129
- if (params.pinnedTool) {
130
129
  options = {
131
130
  ...options,
132
131
  headerRight: (props: any) => {
133
132
  return (
134
133
  <HeaderToolkitAction
135
134
  preventBack={params.preventBack}
136
- pinnedTool={params.pinnedTool}
135
+ pinnedTool={params.toolkitParams?.pinnedTool}
136
+ runtimeTools={params.toolkitParams?.runtimeTools}
137
137
  {...props}
138
138
  />
139
139
  );
140
140
  },
141
141
  };
142
- }
143
142
 
144
143
  return {
145
144
  ...params,
package/Assets/icon.json CHANGED
@@ -801,7 +801,7 @@
801
801
  "uri": "https://img.mservice.com.vn/app/img/kits/navigation_minus_circle_full.png"
802
802
  },
803
803
  "navigation_more_horiz": {
804
- "uri": "https://img.mservice.com.vn/app/img/kits/navigation_more_horiz.png"
804
+ "uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAgKADAAQAAAABAAAAgAAAAABIjgR3AAAFAklEQVR4Ae2aS4tcRRiGM2rEO14SY7wFURGc+CPEyyYJLnSlaCCKLgSzUNBNRAMSF0LIRhGDBMQQMAQ3Zin+A/VHKOIlTm4aJ5fx+VBCT5Puru9UleOE54OX7nO66n2rnj7dp+ucXrPGkoAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhLoTmCue8JYwNLS0m3s2ooeQXeiJfQj+h59NTc39zuP3Yr89ZhH/mYU+RdQ5H+HIn+Bx25F/u2YR/48ivzzKPK/RUfJP87j5VdM/EH0BTqHJtVZXjiI7mtNAM+H0BF0Hk2qyP8MbeqQ/zC+X6Jp+Yu8fgDd2zp/Rf2Y0E4UcEvrLxq+3GrQeL2OMvlnaL+jYf6b+E078Hl5Wf3J1gut8lfUh4nsWza13Mae2sET92Euclnr3Q3yP1nmmNvYVZu/ov2Z62u5+V6y9UtDJ4FbfPJra3tF/lu14fR/dmj+ivZj4A+gOKfVVnwd3pOdDH3inJ/52p80ztO8sHFA/jz9pp3vJ+WN7z/Jjvjh2KWu6OL6j+l7PKxt4H8NHu8O8InTx1UD+o13uY4d74zvLNh+nzYt+N6Az9sFeYOadFkGcsTewmh+Ri3egJjYGbSOJdLp2JhV5MdS7yfU4g2IuMiN/BjHzCI/vjF+QK34nsBrPfmLM8OTDVoBGo/dwo5Wb354x7fAk/GksGKd3XJu1+P3eGF2NNuGWr354XcTejSetK6WkEbHFhdZWlfGM9O2dJwZz0zbHvmlnk0/JaOhcYWrdWU8M21Lx5nxzLTtkV/q2e0AiMurrSvjmWlbOs6MZ6Ztj/xSz24HQFzbbl0Zz0zb0nFmPDNte+SXenY7AOLGSuvKeGbalo4z45lp2yO/1LPpL9WLoSyDbmTjV3T1xZ11T7LLsJuJ+wW1WomklmHMfx3ZsQy9ErWoY5hsYBl4roXZqEeXVQADPUnI56NBlc8PlK7BI4e2Czwcqswc7f4pnoujO6Y9p20c/IentUm+th/P5m9+cgy55nwK7kZ/oNo6gUH6Uih9NqG4q1dbCxjEfxhSRZ/7UYtL4b/hE99oq68Y+POopi7Q+ZmhM6fvjppw+kb+UxX5r1Tmx72EuKi2eosJ7BoIIeC/UTtzPHZX5O9skL9nYH68+a/W5v8v+jOR59CpBIjjtH261eDx2o7irl5pxdf+4E/++LjxehFlTofHaL913GdVbzOhO9BHKG5vTqo438cfSOJmTtPCcyP6GE07EOPA24vS5/xZg8XzLrQfTTsQ48D7AN06y6/V6y1vWBSNicnFjZ3H0KX+FPp15td2UeBYo3/z48bOZhSXbOOqXVy4ibX7N/9B/rXkPIHmUeSP/ik08s+yz5KABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISuJwI/A2lzL3lHltsxwAAAABJRU5ErkJggg=="
805
805
  },
806
806
  "navigation_more_vert": {
807
807
  "uri": "https://img.mservice.com.vn/app/img/kits/navigation_more_vert.png"
@@ -822,7 +822,7 @@
822
822
  "uri": "https://img.mservice.com.vn/app/img/kits/navigation_scan.png"
823
823
  },
824
824
  "navigation_search": {
825
- "uri": "https://img.mservice.com.vn/app/img/kits/navigation_search.png"
825
+ "uri": "data:image/webp;base64,UklGRqwEAABXRUJQVlA4TKAEAAAvf8AfEDVIchtJkqT6/6fZ21hkukWeZouKkARJtmlbtm3btm3b741sjWzbtm3btm184xkLgiS5cZsGUuXbsJOAoPSD88dlwMVKiDwdxtRJ4UUP+XlwcpVn1A0I4dWOVnEMET7n62avxi24FD4tSyT9AJCpq/YI7oQjYZj3Bp2zU3A/dBDfF0y+bsBMGCK3KTpOwFyoR70h9Nreo+EvXyi7Ye4vmA7TaLcCQy4ohB90NoLaKqiEL1HbwOH84sdyqk+aQC5smHLkKViZWT8vXlACZQ/EfAcXOJa5bPO4uGm51A91wtzix3+w5I88UhfXAw5GL6Rh6Bvcu77smyD4N4okpNkXWIVGSPVXWz7DqyjYN+vEa3yZctrvunwjw9gGSmW3/EXx6ZILFiTM/BYx2FjwRqzabUHmhe1UtXBWS4RTBMW1xt/MLYm5eiGKXqSGnsX3ZwPNaMUsvYMYtGoL/eIymuGauS66JIzSmOMkP4NE9z9GeAdfELGdrxqK0cgj0sqM6Sa/a6NuxI5BCrENnHO763RvvF7jUlV4B8hOY7PHVvq/EQNSCJpHAyS1AQaWs8QZxHGq40oLu9a32IIU5Mc3dx7z76wGipNE0TT28W8WfnHd4hSrhz5MTSKvuW7C9q931W1Cqjo3KK/1Xpxx0ThVVBKTtWVLZhdU/9P8A3OUvIRheXDUmz4AwVFp0fKJsExgwmKUm8BJe26nmggb7XqpWr1t6BK1k7Al0togegyMTiKcCKjv2xwFliaRT7jUWQ3slyZeNnUmAjeTGCdM6wylAzGTqCcc68wGLieRSnjW2QrsjY6sieA6V4Hl0Q1noqx+xM5Xp4NC9hqYbcPXOgJiJ/CzjVmrg2pN5eIsk5YwGiUu4VZmI0E3imGipQtpeqS7Mwqhz7RnhlvFBQTahwu2nArmUGUm4TVMUmKkCRtIMA4jDVIQKpKX2Bov2XGiuQeVl+ahH2HxCD/eGhmpdp/ox2GOV4234PWe6CtUrTMmu9LIaxIkDAqIR75jqOAH4qMhdie299sGnAIaPkDeczWQe8fQNv/F4fAbJLZLZz/U5xQ9DaGDWLMvMq1zLv7mZDl8xMkgiGTU+gbfzDvX0csGFiceYNdAMQ1yyD1zz3AAMsrFdQOtHyCHUcRTb+Q3yBR2z/X7Wp3uxDvS7vj6AAtEu4OTKLAIr2Jg3W/2JsEyXGPrphKwCmds770kKhnewXuzhKITLMMJJ9iXYZX3vdBvlzANg3X4p5wK1CsjLpcfQ96OCV0juBL+6xVIFd2vawEMvEyl2fg+47xrQpIDroZHR1ZNGDJry5VPMBCusXZfjI83cDf2T2JOCxQSdb1VItAwzelXs8e2Vx5ajif5kvHVGvZLGMI9jrH9PWfsmAepWH9mLrH4mrJ2zYNAkLO7fOpjCHHRirfLA5G8In9usCX8x/Zm8zwHOnnhJr1d4E47rx9b24ncI2ARZClMrVFL9t344dKeZb1yBDL6ua+byl1jLl39vktXq8Ty/ET6+NRwHp84H59sXghPT24vhKcnqRfCw9MetPPs9EHyhfDUQKrhx2WS58GBkw030p/3/nUYBw=="
826
826
  },
827
827
  "navigation_search_add": {
828
828
  "uri": "https://img.mservice.com.vn/app/img/kits/navigation_search_add.png"
@@ -2640,7 +2640,7 @@
2640
2640
  "uri": "https://img.mservice.io/momo_app_v2/new_version/img/appx_icon/16_navigation_close_circle_full.png"
2641
2641
  },
2642
2642
  "16_navigation_close_circle": {
2643
- "uri": "https://img.mservice.io/momo_app_v2/new_version/img/appx_icon/16_navigation_close_circle.png"
2643
+ "uri": "data:image/webp;base64,UklGRkICAABXRUJQVlA4TDUCAAAvP8APEM8x//M//wzbRlKcvMws3D1DYBwIAASMF4YAQCHQAAED7AAg8AMYB0DhQCMgGAnwAARuAAHcAABsSCQMYAgFAFIhSQDYtJHKzMzMzB3//2mWbdmahaMVR/QfgiS5cZsB4DskKoXzC7H/FklUBov99fENkd/zoJJwTKqzegmDvEIn5Y706CFQEo3Y0dm9m0AL9yIHNC/CSkLTlvhY5+N50q2XslGo+8lZ5w3HrchshMJhWGStRMGrHm0yFuSOArKtYpyqbhWnjgFvdw84tbF+RSfo1x2rGeX1LBlDS5gpLyPcafAvfvoxK4kC/IM4BnjRsxGzFB/gPZh4g6+tjdnDl+b4S1wAfXYgEQzghIkePM1NYsHDeqZUvYFbk24I4NJbWs9ISFqqG+X5NG/Ch3lZE3/AyZG+zjxAtGvs4/27pid6e//R6A6UkZSOjpBUVebCSzWZ93NNCgE3g441SFVWmQqoJvNB4xhI4pXu5JdkqKHwVtRgnNcQQClNmP4P2kJRU9XghLaMAE8qKgNQpphRijTms2SgspRMGKlI44lkqbKXdBmpSOOuJKhcJXVGKtI4SK4qD0mJEWphHEDkqnwlWcYo3jgrCfTQv6H/Cf1B5HG7+D15UyHLW3zdyDurG+R1i75u0tdtRN9o2/SNAqZv0Pct8r5J37fJ5wbyuYV+biKf22znxpb93Eg+t5LPzeRzO/XeQL63UO9NLve2tXlvW4eU672xOliqe+NywInY/4owAA=="
2644
2644
  },
2645
2645
  "16_navigation_close": {
2646
2646
  "uri": "https://img.mservice.io/momo_app_v2/new_version/img/appx_icon/16_navigation_close.png"
@@ -3918,7 +3918,7 @@
3918
3918
  "uri": "https://img.mservice.com.vn/app/img/kits/Phonebook-outline.png"
3919
3919
  },
3920
3920
  "ic_back": {
3921
- "uri": "https://img.mservice.com.vn/momo_app_v2/new_version/img/appx_icon/ic_back_ios.png"
3921
+ "uri": "data:image/webp;base64,UklGRqIBAABXRUJQVlA4TJYBAAAvX8AXEFVActtIkjT//zRn9WzKYwOJRgQkAADLRtvOtm3btm3b9r1svWzbtm3btu27OHIkN26abK9JbpFIPuE+bAQmFS5c6qcQhrE34CPEZKHr9/kJf0SiUPENfAnNTcj4eH7FaRKiXoGBmyJ4PQILPUGwuwUmtHpgdLFV0RO1461eyDmQ2tsahZYTgY2tGZg54VjcWoabE4aprU1EOaEa3tpHnhOS7q1TNDkhaN66wpQTnKqtOxw5QRVsPeHvLRfSt16J9ZS49UGup/Ctb+o9BW790u/JbeufZU82/jecggWWvy3fnrT8bAX1pORrK7YnKe9byT1RetrKAe2hcqsM7PZwMVEP/h5A/Eb52039I3LfPlL/IUkvkHvA/7q+Lgm+t76u8ikm2/q+cC/37/e1/L5cTGHf1xUH1EX5ui4IqMLv69ID6up4X+AS01se0Ncc0Jcd0Ffm++JgIvxBX9+fS/TnKsHE8O1cqD/XKia+b+Zy/bniAXPRZlAd5ZjmA+bS1WDq51MVI+R2A4tKRx51UL6PD3EB"
3922
3922
  },
3923
3923
  "share": {
3924
3924
  "uri": "https://img.mservice.com.vn/app/img/mini-app-center/share.png"
@@ -3936,7 +3936,7 @@
3936
3936
  "uri": "https://img.mservice.com.vn/app/img/kits/error_mess_icon.png"
3937
3937
  },
3938
3938
  "media_fail": {
3939
- "uri": "https://static.momocdn.net/app/img/kits/media_fail.png"
3939
+ "uri": "data:image/png;base64,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"
3940
3940
  },
3941
3941
  "ic_checked": {
3942
3942
  "uri": "https://img.mservice.com.vn/app/img/kits/checked_ic.png"
@@ -3949,5 +3949,83 @@
3949
3949
  },
3950
3950
  "ic_money_bag": {
3951
3951
  "uri": "https://static.momocdn.net/app/img/kits/ic_money_bag.png"
3952
+ },
3953
+ "basic_flaged": {
3954
+ "uri": "https://static.momocdn.net/app/img/kits/basic_flaged.png"
3955
+ },
3956
+ "basic_user": {
3957
+ "uri": "https://static.momocdn.net/app/img/kits/basic_user.png"
3958
+ },
3959
+ "media_player_play_not": {
3960
+ "uri": "https://static.momocdn.net/app/img/kits/media_player_play_not.png"
3961
+ },
3962
+ "navigation_AR": {
3963
+ "uri": "https://static.momocdn.net/app/img/kits/navigation_AR.png"
3964
+ },
3965
+ "navigation_scan_barcode": {
3966
+ "uri": "https://static.momocdn.net/app/img/kits/navigation_scan_barcode.png"
3967
+ },
3968
+ "notifications_follow": {
3969
+ "uri": "https://static.momocdn.net/app/img/kits/notifications_follow.png"
3970
+ },
3971
+ "notifications_followed": {
3972
+ "uri": "https://static.momocdn.net/app/img/kits/notifications_followed.png"
3973
+ },
3974
+ "notifications_unfollow": {
3975
+ "uri": "https://static.momocdn.net/app/img/kits/notifications_unfollow.png"
3976
+ },
3977
+ "reaction_disliked": {
3978
+ "uri": "https://static.momocdn.net/app/img/kits/reaction_disliked.png"
3979
+ },
3980
+ "reaction_liked": {
3981
+ "uri": "https://static.momocdn.net/app/img/kits/reaction_liked.png"
3982
+ },
3983
+ "travel_247": {
3984
+ "uri": "https://static.momocdn.net/app/img/kits/travel_247.png"
3985
+ },
3986
+ "travel_children_area": {
3987
+ "uri": "https://static.momocdn.net/app/img/kits/travel_children_area.png"
3988
+ },
3989
+ "travel_cooker": {
3990
+ "uri": "https://static.momocdn.net/app/img/kits/travel_cooker.png"
3991
+ },
3992
+ "travel_dishwasher": {
3993
+ "uri": "https://static.momocdn.net/app/img/kits/travel_dishwasher.png"
3994
+ },
3995
+ "travel_electronic_stove": {
3996
+ "uri": "https://static.momocdn.net/app/img/kits/travel_electronic_stove.png"
3997
+ },
3998
+ "travel_friend_group": {
3999
+ "uri": "https://static.momocdn.net/app/img/kits/travel_friend_group.png"
4000
+ },
4001
+ "travel_gas_stove": {
4002
+ "uri": "https://static.momocdn.net/app/img/kits/travel_gas_stove.png"
4003
+ },
4004
+ "travel_kid_area": {
4005
+ "uri": "https://static.momocdn.net/app/img/kits/travel_kid_area.png"
4006
+ },
4007
+ "travel_led_Light": {
4008
+ "uri": "https://static.momocdn.net/app/img/kits/travel_led_Light.png"
4009
+ },
4010
+ "travel_light": {
4011
+ "uri": "https://static.momocdn.net/app/img/kits/travel_light.png"
4012
+ },
4013
+ "travel_music": {
4014
+ "uri": "https://static.momocdn.net/app/img/kits/travel_music.png"
4015
+ },
4016
+ "travel_outdoor_table": {
4017
+ "uri": "https://static.momocdn.net/app/img/kits/travel_outdoor_table.png"
4018
+ },
4019
+ "travel_private_room": {
4020
+ "uri": "https://static.momocdn.net/app/img/kits/travel_private_room.png"
4021
+ },
4022
+ "travel_romantic": {
4023
+ "uri": "https://static.momocdn.net/app/img/kits/travel_romantic.png"
4024
+ },
4025
+ "travel_smoking": {
4026
+ "uri": "https://static.momocdn.net/app/img/kits/travel_smoking.png"
4027
+ },
4028
+ "travel_suitcase": {
4029
+ "uri": "https://static.momocdn.net/app/img/kits/travel_suitcase.png"
3952
4030
  }
3953
4031
  }