Skip to content

Commit

Permalink
Fix issues with starting app with deep stack
Browse files Browse the repository at this point in the history
* add back button to screens pushed to stack
* resolve tab icon from root screen, instead of first pushed screen
* omit components object from tabs
  • Loading branch information
guyca committed Mar 5, 2018
1 parent 0294405 commit 1a89256
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions src/deprecated/platformSpecificDeprecated.android.js
Expand Up @@ -20,7 +20,8 @@ async function startSingleScreenApp(params) {
if (components) {
params.screen = createSingleScreen(components[0]);
components.shift();
params.screen.screens = components.map(createSingleScreen);
params.screen.screens = components.map(createSingleScreen) || [];
params.screen.screens.map((c, i) => i === 0 ? c : addTitleBarBackButtonIfNeeded(c));
} else {
params.screen = createSingleScreen({...params.screen, passProps: params.passProps});
}
Expand Down Expand Up @@ -314,10 +315,12 @@ async function startTabBasedApp(params) {
params.tabs.forEach(function(tab, idx) {
if (tab.components) {
const components = tab.components;
const screen = createBottomTabScreen(components[0], idx, params)
const {label, icon} = components[0];
components.shift();
const screen = createBottomTabScreen(tab, idx, params)
const {label, icon} = screen;
screen.screens = components.map(c => createBottomTabScreen({...c, icon, label}, idx, params));
screen.screens.map((s, i) => addTitleBarBackButtonIfNeeded(s));
screen.screens.map((s, i) => s.navigationParams.navigatorID = screen.navigationParams.navigatorID);
screen = _.omit(screen, ['components']);
newTabs.push(screen);
} else {
newTabs.push(createBottomTabScreen(tab, idx, params));
Expand Down

0 comments on commit 1a89256

Please sign in to comment.