Merge pull request #1 from solomonhawk/sfh/fix-drawer-quick-navigate

Fix a bug in DrawerView
This commit is contained in:
Brent Vatne
2018-06-06 14:29:16 -07:00
parent 0715384785
commit 2cc759d300

View File

@@ -24,10 +24,10 @@ export default class DrawerView extends React.PureComponent {
const { isDrawerOpen } = this.props.navigation.state;
const wasDrawerOpen = prevProps.navigation.state.isDrawerOpen;
if (isDrawerOpen && !wasDrawerOpen && this._drawerState === 'closed') {
if (this._shouldOpen(isDrawerOpen, wasDrawerOpen)) {
this._drawerState = 'opening';
this._drawer.openDrawer();
} else if (wasDrawerOpen && !isDrawerOpen && this._drawerState === 'open') {
} else if (this._shouldClose(isDrawerOpen, wasDrawerOpen)) {
this._drawerState = 'closing';
this._drawer.closeDrawer();
}
@@ -39,6 +39,22 @@ export default class DrawerView extends React.PureComponent {
_drawerState = 'closed';
_shouldOpen = (isDrawerOpen, wasDrawerOpen) => {
return (
isDrawerOpen &&
!wasDrawerOpen &&
(this._drawerState === 'closed' || this._drawerState === 'closing')
);
};
_shouldClose = (isDrawerOpen, wasDrawerOpen) => {
return (
wasDrawerOpen &&
!isDrawerOpen &&
(this._drawerState === 'open' || this._drawerState === 'opening')
);
};
_handleDrawerOpen = () => {
const { navigation } = this.props;
const { isDrawerOpen } = navigation.state;