From 3990ea39c53d81a08ea6015e2d0775e1dfe83038 Mon Sep 17 00:00:00 2001 From: Brent Vatne Date: Wed, 20 Jun 2018 15:29:57 -0700 Subject: [PATCH] Fix drawer closing behavior --- packages/drawer/src/views/DrawerView.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/drawer/src/views/DrawerView.js b/packages/drawer/src/views/DrawerView.js index a971c8e9..572d67f2 100644 --- a/packages/drawer/src/views/DrawerView.js +++ b/packages/drawer/src/views/DrawerView.js @@ -22,13 +22,17 @@ export default class DrawerView extends React.PureComponent { } componentDidUpdate(prevProps) { - const { isDrawerOpen } = this.props.navigation.state; + const { isDrawerOpen, key } = this.props.navigation.state; + const prevKey = prevProps.navigation.state.key; const wasDrawerOpen = prevProps.navigation.state.isDrawerOpen; + const shouldOpen = this._shouldOpen(isDrawerOpen, wasDrawerOpen); + const shouldClose = + this._shouldClose(isDrawerOpen, wasDrawerOpen) || key !== prevKey; - if (this._shouldOpen(isDrawerOpen, wasDrawerOpen)) { + if (shouldOpen) { this._drawerState = 'opening'; this._drawer.openDrawer(); - } else if (this._shouldClose(isDrawerOpen, wasDrawerOpen)) { + } else if (shouldClose) { this._drawerState = 'closing'; this._drawer.closeDrawer(); }