@momo-kits/foundation 0.114.0-beta.13 → 0.114.0-beta.14

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.
@@ -12,8 +12,6 @@ import {PopupNotify} from '../../Popup';
12
12
  import {Tool, ToolGroup} from '../types';
13
13
  import {Icon} from '../../Icon';
14
14
  import {scaleSize, Text} from '../../Text';
15
- import {BottomSheetHelpCenter} from './BottomSheetHelpCenter';
16
- import {Image} from '../../Image';
17
15
 
18
16
  const DID_SYNC_NEW_HOME = 'did_sync_new_home';
19
17
  /**
@@ -56,7 +54,7 @@ const HeaderToolkitAction: React.FC<any> = ({
56
54
  useMore = false,
57
55
  tools = [],
58
56
  }) => {
59
- const {navigator, translate} = useContext(ApplicationContext);
57
+ const {navigator} = useContext(ApplicationContext);
60
58
  const context = useContext<any>(MiniAppContext);
61
59
 
62
60
  const [isFavorite, setIsFavorite] = useState<boolean>(false);
@@ -134,7 +132,7 @@ const HeaderToolkitAction: React.FC<any> = ({
134
132
  ),
135
133
  });
136
134
  } else {
137
- navigator?.maxApi?.dispatchFunction?.('dismiss', undefined, undefined);
135
+ navigator?.maxApi?.dismiss?.(navigator?.dismissData);
138
136
  }
139
137
  };
140
138
 
@@ -174,8 +172,6 @@ const HeaderToolkitAction: React.FC<any> = ({
174
172
  * on press help center
175
173
  */
176
174
  const onPressHelpCenter = () => {
177
- const appName = translate?.(context?.name);
178
- const appDescription = translate?.(context?.description);
179
175
  const currentRoute = navigator?.ref?.current?.getCurrentRoute?.();
180
176
  context?.autoTracking?.({
181
177
  ...context,
@@ -184,30 +180,7 @@ const HeaderToolkitAction: React.FC<any> = ({
184
180
  screenName: currentRoute?.params?.screen?.name ?? currentRoute?.name,
185
181
  });
186
182
 
187
- navigator?.showBottomSheet({
188
- options: {
189
- header: (
190
- <View style={[Styles.row, {paddingLeft: Spacing.M}]}>
191
- <Image
192
- source={{uri: context?.icon}}
193
- style={{width: 40, height: 40, marginRight: Spacing.S}}
194
- />
195
- <View>
196
- <Text typography={'label_default_medium'}>{appName}</Text>
197
- {appDescription !== '{}' && (
198
- <Text
199
- typography={'description_default_regular'}
200
- color={Colors.black_12}>
201
- {appDescription}
202
- </Text>
203
- )}
204
- </View>
205
- </View>
206
- ),
207
- },
208
- surface: true,
209
- screen: BottomSheetHelpCenter,
210
- });
183
+ navigator?.maxApi?.dispatchFunction?.('showHelpCenter', context);
211
184
  };
212
185
 
213
186
  /**
@@ -80,19 +80,33 @@ const NavigationContainer: React.FC<NavigationContainerProps> = ({
80
80
  * @param preScreenName
81
81
  * @param screenName
82
82
  * @param action
83
+ * @param type
83
84
  */
84
85
  const onScreenNavigated = (
85
86
  preScreenName: string,
86
87
  screenName: string,
87
- action: string
88
+ action: string,
89
+ type: 'Screen' | 'Modal' | 'BottomSheet'
88
90
  ) => {
89
- console.log(preScreenName, screenName, action);
90
- context?.autoTracking?.({
91
- ...context,
91
+ console.log(preScreenName, screenName, action, type);
92
+
93
+ let data: any = {
92
94
  preScreenName,
93
95
  screenName,
94
- componentName: 'Screen',
96
+ componentName: type,
95
97
  state: 'navigated',
98
+ };
99
+ if (type !== 'Screen') {
100
+ data = {
101
+ preScreenName,
102
+ screenName,
103
+ componentName: type,
104
+ };
105
+ }
106
+
107
+ context?.autoTracking?.({
108
+ ...context,
109
+ ...data,
96
110
  action,
97
111
  });
98
112
 
@@ -149,15 +163,19 @@ const NavigationContainer: React.FC<NavigationContainerProps> = ({
149
163
  isReady.current = true;
150
164
  routes.current = navigationRef.current?.getRootState?.()?.routes;
151
165
  maxApi?.getDataObserver('CURRENT_SCREEN', (data: any) => {
152
- onScreenNavigated(data?.screenName, screen?.name, 'push');
166
+ onScreenNavigated(
167
+ data?.screenName,
168
+ screen?.name,
169
+ 'push',
170
+ 'Screen'
171
+ );
153
172
  maxApi?.setObserver('CURRENT_SCREEN', {
154
173
  screenName: screen?.name,
155
174
  });
156
175
  });
157
176
  }}
158
177
  onStateChange={state => {
159
- const lastedRoute: any =
160
- state?.routes?.[state?.routes?.length - 1];
178
+ const lastedRoute: any = state?.routes?.[state?.index];
161
179
  const oldRoute: any =
162
180
  routes.current?.[routes.current?.length - 1];
163
181
  const lasted = lastedRoute?.params?.screen;
@@ -165,13 +183,35 @@ const NavigationContainer: React.FC<NavigationContainerProps> = ({
165
183
  const preScreenName = previous?.name ?? previous?.type?.name;
166
184
  const screenName = lasted?.name ?? lasted?.type?.name;
167
185
 
168
- let action = 'push';
169
- if (routes.current?.length > (state?.routes?.length ?? 0)) {
170
- action = 'back';
186
+ let action: string;
187
+ let type: 'Screen' | 'Modal' | 'BottomSheet';
188
+
189
+ if (lastedRoute?.name === 'Modal') {
190
+ type = 'Modal';
191
+ action = 'open';
192
+ if (lastedRoute?.params?.isBottomSheet) {
193
+ type = 'BottomSheet';
194
+ }
195
+ } else if (oldRoute?.name === 'Modal') {
196
+ action = 'close';
197
+ type = 'Modal';
198
+ if (oldRoute?.params?.isBottomSheet) {
199
+ type = 'BottomSheet';
200
+ }
201
+ } else {
202
+ type = 'Screen';
203
+ if (routes.current?.length > (state?.routes?.length ?? 0)) {
204
+ action = 'back';
205
+ } else {
206
+ action = 'push';
207
+ }
171
208
  }
172
- onScreenNavigated(preScreenName, screenName, action);
173
- maxApi?.setObserver('CURRENT_SCREEN', {screenName});
209
+
210
+ onScreenNavigated(preScreenName, screenName, action, type);
211
+
174
212
  routes.current = state?.routes;
213
+ maxApi?.of?.({screenName});
214
+ maxApi?.setObserver('CURRENT_SCREEN', {screenName});
175
215
  }}
176
216
  independent={true}>
177
217
  <Stack.Navigator initialRouteName="Stack" headerMode="screen">
@@ -6,6 +6,7 @@ import Navigation from './Navigation';
6
6
  import {ApplicationContext, MiniAppContext, ScreenContext} from './index';
7
7
  import {GridSystem} from '../Layout';
8
8
  import {version} from '../package.json';
9
+
9
10
  const runAfterInteractions = InteractionManager.runAfterInteractions;
10
11
 
11
12
  /**
@@ -69,10 +70,6 @@ const StackScreen: React.FC<ScreenParams> = props => {
69
70
  });
70
71
  }
71
72
 
72
- const subscription = props.navigation?.addListener?.('focus', () => {
73
- navigator?.maxApi?.of?.({screenName});
74
- navigator?.maxApi?.setObserver('CURRENT_SCREEN', {screenName});
75
- });
76
73
  navigator?.maxApi?.startTraceScreenLoad?.(
77
74
  screenName,
78
75
  context,
@@ -97,7 +94,6 @@ const StackScreen: React.FC<ScreenParams> = props => {
97
94
  onScreenLoad();
98
95
  onScreenInteraction();
99
96
  clearTimeout(tracking.current.timeoutTracking);
100
- subscription?.();
101
97
  };
102
98
  }, []);
103
99
 
@@ -141,7 +137,6 @@ const StackScreen: React.FC<ScreenParams> = props => {
141
137
  context.debugLastElement &&
142
138
  lastElement.current?.children?.length > 0
143
139
  ) {
144
- console.log(JSON.stringify(lastElement.current));
145
140
  Alert.alert(
146
141
  `${screenName}- load ${timeLoad}ms`,
147
142
  JSON.stringify(lastElement.current?.children)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momo-kits/foundation",
3
- "version": "0.114.0-beta.13",
3
+ "version": "0.114.0-beta.14",
4
4
  "description": "React Native Component Kits",
5
5
  "main": "index.ts",
6
6
  "scripts": {},