Quellcode durchsuchen

passProps in iOS

Daniel Zlotin vor 8 Jahren
Ursprung
Commit
2eb6548bd2
1 geänderte Dateien mit 40 neuen und 1 gelöschten Zeilen
  1. 40
    1
      src/deprecated/platformSpecificDeprecated.ios.js

+ 40
- 1
src/deprecated/platformSpecificDeprecated.ios.js Datei anzeigen

78
       );
78
       );
79
     }
79
     }
80
   });
80
   });
81
+  savePassProps(params);
82
+
81
   ControllerRegistry.registerController(controllerID, () => Controller);
83
   ControllerRegistry.registerController(controllerID, () => Controller);
82
   ControllerRegistry.setRootController(controllerID, params.animationType, params.passProps || {});
84
   ControllerRegistry.setRootController(controllerID, params.animationType, params.passProps || {});
83
 }
85
 }
137
       );
139
       );
138
     }
140
     }
139
   });
141
   });
142
+  savePassProps(params);
143
+
140
   ControllerRegistry.registerController(controllerID, () => Controller);
144
   ControllerRegistry.registerController(controllerID, () => Controller);
141
   ControllerRegistry.setRootController(controllerID, params.animationType, params.passProps || {});
145
   ControllerRegistry.setRootController(controllerID, params.animationType, params.passProps || {});
142
 }
146
 }
185
   passProps.navigatorID = navigator.navigatorID;
189
   passProps.navigatorID = navigator.navigatorID;
186
   passProps.screenInstanceID = screenInstanceID;
190
   passProps.screenInstanceID = screenInstanceID;
187
   passProps.navigatorEventID = navigatorEventID;
191
   passProps.navigatorEventID = navigatorEventID;
192
+
193
+  savePassProps(params);
194
+
188
   Controllers.NavigationControllerIOS(navigator.navigatorID).push({
195
   Controllers.NavigationControllerIOS(navigator.navigatorID).push({
189
     title: params.title,
196
     title: params.title,
190
     titleImage: params.titleImage,
197
     titleImage: params.titleImage,
226
   passProps.navigatorID = navigator.navigatorID;
233
   passProps.navigatorID = navigator.navigatorID;
227
   passProps.screenInstanceID = screenInstanceID;
234
   passProps.screenInstanceID = screenInstanceID;
228
   passProps.navigatorEventID = navigatorEventID;
235
   passProps.navigatorEventID = navigatorEventID;
236
+
237
+  savePassProps(params);
238
+
229
   Controllers.NavigationControllerIOS(navigator.navigatorID).resetTo({
239
   Controllers.NavigationControllerIOS(navigator.navigatorID).resetTo({
230
     title: params.title,
240
     title: params.title,
231
     titleImage: params.titleImage,
241
     titleImage: params.titleImage,
364
       );
374
       );
365
     }
375
     }
366
   });
376
   });
377
+
378
+  savePassProps(params);
379
+
367
   ControllerRegistry.registerController(controllerID, () => Controller);
380
   ControllerRegistry.registerController(controllerID, () => Controller);
368
   Modal.showController(controllerID, params.animationType);
381
   Modal.showController(controllerID, params.animationType);
369
 }
382
 }
393
   passProps.navigatorID = navigatorID;
406
   passProps.navigatorID = navigatorID;
394
   passProps.screenInstanceID = screenInstanceID;
407
   passProps.screenInstanceID = screenInstanceID;
395
   passProps.navigatorEventID = navigatorEventID;
408
   passProps.navigatorEventID = navigatorEventID;
409
+
410
+  savePassProps(params);
411
+
396
   Modal.showLightBox({
412
   Modal.showLightBox({
397
     component: params.screen,
413
     component: params.screen,
398
     passProps: passProps,
414
     passProps: passProps,
439
   Notification.dismiss(params);
455
   Notification.dismiss(params);
440
 }
456
 }
441
 
457
 
458
+function savePassProps(params) {
459
+  //TODO this needs to be handled in a common place,
460
+  //TODO also, all global passProps should be handled differently
461
+  if (params.navigationParams && params.passProps) {
462
+    PropRegistry.save(params.navigationParams.screenInstanceID, params.passProps);
463
+  }
464
+
465
+  if (params.screen && params.screen.passProps) {
466
+    PropRegistry.save(params.screen.navigationParams.screenInstanceID, params.screen.passProps);
467
+  }
468
+
469
+  if (_.get(params, 'screen.topTabs')) {
470
+    _.forEach(params.screen.topTabs, (tab) => savePassProps(tab));
471
+  }
472
+
473
+  if (params.tabs) {
474
+    _.forEach(params.tabs, (tab) => {
475
+      tab.passProps = params.passProps;
476
+      savePassProps(tab);
477
+    });
478
+  }
479
+}
480
+
442
 export default {
481
 export default {
443
   startTabBasedApp,
482
   startTabBasedApp,
444
   startSingleScreenApp,
483
   startSingleScreenApp,
461
   navigatorSetTabBadge,
500
   navigatorSetTabBadge,
462
   navigatorSwitchToTab,
501
   navigatorSwitchToTab,
463
   navigatorToggleNavBar
502
   navigatorToggleNavBar
464
-}
503
+};