From 07c8e66468f7dcd71700ce5a5323e490c4c9500b Mon Sep 17 00:00:00 2001 From: Kevin Cooper Date: Fri, 18 Nov 2016 11:57:52 -0500 Subject: [PATCH] Allow setting statusBar height via route config --- src/ExNavigationStack.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/ExNavigationStack.js b/src/ExNavigationStack.js index 275ad70..e7747ea 100644 --- a/src/ExNavigationStack.js +++ b/src/ExNavigationStack.js @@ -469,9 +469,13 @@ class ExNavigationStack extends PureComponent { _getNavigationBarHeight(latestRouteConfig) { let height = NavigationBar.DEFAULT_HEIGHT; - if (latestRouteConfig.statusBar && latestRouteConfig.statusBar.translucent) { - height = NavigationBar.DEFAULT_HEIGHT_WITHOUT_STATUS_BAR + DEFAULT_STATUSBAR_HEIGHT; - }; + if (latestRouteConfig.statusBar) { + if (latestRouteConfig.statusBar.height || latestRouteConfig.statusBar.height === 0) { + height = NavigationBar.DEFAULT_HEIGHT_WITHOUT_STATUS_BAR + latestRouteConfig.statusBar.height; + } else if (latestRouteConfig.statusBar.translucent) { + height = NavigationBar.DEFAULT_HEIGHT_WITHOUT_STATUS_BAR + DEFAULT_STATUSBAR_HEIGHT; + } + } return height; } @@ -528,8 +532,12 @@ class ExNavigationStack extends PureComponent { // pass the statusBarHeight to headerComponent if statusBar is translucent let statusBarHeight = STATUSBAR_HEIGHT; - if (latestRouteConfig.statusBar && latestRouteConfig.statusBar.translucent) { - statusBarHeight = DEFAULT_STATUSBAR_HEIGHT; + if (latestRouteConfig.statusBar) { + if (latestRouteConfig.statusBar.height || latestRouteConfig.statusBar.height === 0) { + statusBarHeight = latestRouteConfig.statusBar.height; + } else if (latestRouteConfig.statusBar.translucent) { + statusBarHeight = DEFAULT_STATUSBAR_HEIGHT; + } } // TODO: add height here