|
@@ -36,7 +36,7 @@ async function startTabBasedApp(params) {
|
36
|
36
|
Object.assign(tab, components[0]);
|
37
|
37
|
components.shift();
|
38
|
38
|
}
|
39
|
|
-
|
|
39
|
+
|
40
|
40
|
const {
|
41
|
41
|
navigatorStyle,
|
42
|
42
|
navigatorButtons,
|
|
@@ -90,7 +90,7 @@ async function startTabBasedApp(params) {
|
90
|
90
|
);
|
91
|
91
|
}
|
92
|
92
|
},
|
93
|
|
- renderBody: function() {
|
|
93
|
+ renderBody: function () {
|
94
|
94
|
return (
|
95
|
95
|
<TabBarControllerIOS
|
96
|
96
|
id={controllerID + '_tabs'}
|
|
@@ -98,7 +98,7 @@ async function startTabBasedApp(params) {
|
98
|
98
|
appStyle={params.appStyle}
|
99
|
99
|
initialTabIndex={params.initialTabIndex}>
|
100
|
100
|
{
|
101
|
|
- params.tabs.map(function(tab, index) {
|
|
101
|
+ params.tabs.map(function (tab, index) {
|
102
|
102
|
return (
|
103
|
103
|
<TabBarControllerIOS.Item {...tab} title={tab.label}>
|
104
|
104
|
<NavigationControllerIOS
|
|
@@ -109,10 +109,10 @@ async function startTabBasedApp(params) {
|
109
|
109
|
component={tab.screen}
|
110
|
110
|
components={tab.components}
|
111
|
111
|
passProps={{
|
112
|
|
- navigatorID: tab.navigationParams.navigatorID,
|
113
|
|
- screenInstanceID: tab.navigationParams.screenInstanceID,
|
114
|
|
- navigatorEventID: tab.navigationParams.navigatorEventID,
|
115
|
|
- }}
|
|
112
|
+ navigatorID: tab.navigationParams.navigatorID,
|
|
113
|
+ screenInstanceID: tab.navigationParams.screenInstanceID,
|
|
114
|
+ navigatorEventID: tab.navigationParams.navigatorEventID,
|
|
115
|
+ }}
|
116
|
116
|
style={tab.navigationParams.navigatorStyle}
|
117
|
117
|
leftButtons={tab.navigationParams.navigatorButtons.leftButtons}
|
118
|
118
|
rightButtons={tab.navigationParams.navigatorButtons.rightButtons}
|
|
@@ -141,8 +141,15 @@ async function startSingleScreenApp(params) {
|
141
|
141
|
}
|
142
|
142
|
|
143
|
143
|
if (components) {
|
144
|
|
- screen = components[0];
|
145
|
|
- components.shift();
|
|
144
|
+ components.forEach(component => {
|
|
145
|
+ screen = components[0];
|
|
146
|
+ components.shift();
|
|
147
|
+ const screenInstanceID = _.uniqueId('screenInstanceID');
|
|
148
|
+ component.navigationParams = {
|
|
149
|
+ screenInstanceID
|
|
150
|
+ };
|
|
151
|
+ savePassProps(component);
|
|
152
|
+ });
|
146
|
153
|
}
|
147
|
154
|
|
148
|
155
|
const controllerID = _.uniqueId('controllerID');
|
|
@@ -168,6 +175,13 @@ async function startSingleScreenApp(params) {
|
168
|
175
|
navigatorID
|
169
|
176
|
};
|
170
|
177
|
|
|
178
|
+ const passProps = {
|
|
179
|
+ navigatorID: navigatorID,
|
|
180
|
+ screenInstanceID: screenInstanceID,
|
|
181
|
+ navigatorEventID: navigatorEventID,
|
|
182
|
+ ...screen.passProps
|
|
183
|
+ };
|
|
184
|
+
|
171
|
185
|
const Controller = Controllers.createClass({
|
172
|
186
|
render: function() {
|
173
|
187
|
if (!params.drawer || (!params.drawer.left && !params.drawer.right)) {
|
|
@@ -176,15 +190,15 @@ async function startSingleScreenApp(params) {
|
176
|
190
|
const navigatorID = controllerID + '_drawer';
|
177
|
191
|
return (
|
178
|
192
|
<DrawerControllerIOS id={navigatorID}
|
179
|
|
- componentLeft={params.drawer.left ? params.drawer.left.screen : undefined}
|
180
|
|
- passPropsLeft={{navigatorID: navigatorID}}
|
181
|
|
- componentRight={params.drawer.right ? params.drawer.right.screen : undefined}
|
182
|
|
- passPropsRight={{navigatorID: navigatorID}}
|
183
|
|
- disableOpenGesture={params.drawer.disableOpenGesture}
|
184
|
|
- type={params.drawer.type ? params.drawer.type : 'MMDrawer'}
|
185
|
|
- animationType={params.drawer.animationType ? params.drawer.animationType : 'slide'}
|
186
|
|
- style={params.drawer.style}
|
187
|
|
- appStyle={params.appStyle}
|
|
193
|
+ componentLeft={params.drawer.left ? params.drawer.left.screen : undefined}
|
|
194
|
+ passPropsLeft={{navigatorID: navigatorID}}
|
|
195
|
+ componentRight={params.drawer.right ? params.drawer.right.screen : undefined}
|
|
196
|
+ passPropsRight={{navigatorID: navigatorID}}
|
|
197
|
+ disableOpenGesture={params.drawer.disableOpenGesture}
|
|
198
|
+ type={params.drawer.type ? params.drawer.type : 'MMDrawer'}
|
|
199
|
+ animationType={params.drawer.animationType ? params.drawer.animationType : 'slide'}
|
|
200
|
+ style={params.drawer.style}
|
|
201
|
+ appStyle={params.appStyle}
|
188
|
202
|
>
|
189
|
203
|
{this.renderBody()}
|
190
|
204
|
</DrawerControllerIOS>
|
|
@@ -200,11 +214,7 @@ async function startSingleScreenApp(params) {
|
200
|
214
|
titleImage={screen.titleImage}
|
201
|
215
|
component={screen.screen}
|
202
|
216
|
components={components}
|
203
|
|
- passProps={{
|
204
|
|
- navigatorID: navigatorID,
|
205
|
|
- screenInstanceID: screenInstanceID,
|
206
|
|
- navigatorEventID: navigatorEventID
|
207
|
|
- }}
|
|
217
|
+ passProps={passProps}
|
208
|
218
|
style={navigatorStyle}
|
209
|
219
|
leftButtons={navigatorButtons.leftButtons}
|
210
|
220
|
rightButtons={navigatorButtons.rightButtons}
|
|
@@ -365,8 +375,8 @@ function navigatorResetTo(navigator, params) {
|
365
|
375
|
}
|
366
|
376
|
|
367
|
377
|
function navigatorSetDrawerEnabled(navigator, params) {
|
368
|
|
- const controllerID = navigator.navigatorID.split('_')[0];
|
369
|
|
- Controllers.NavigationControllerIOS(controllerID + '_drawer').setDrawerEnabled(params)
|
|
378
|
+ const controllerID = navigator.navigatorID.split('_')[0];
|
|
379
|
+ Controllers.NavigationControllerIOS(controllerID + '_drawer').setDrawerEnabled(params)
|
370
|
380
|
}
|
371
|
381
|
|
372
|
382
|
function navigatorSetTitle(navigator, params) {
|