Support multiple actions in one tick and fire them in the order that they arrive

This commit is contained in:
Brent Vatne
2018-09-26 16:50:21 -07:00
committed by satyajit.happy
parent 56df4c9cd6
commit 4128e248d3

View File

@@ -33,17 +33,24 @@ export default class DrawerView extends React.PureComponent {
toggleId: prevToggleId,
} = prevProps.navigation.state;
if (openId !== prevOpenId) {
this._drawer.openDrawer();
} else if (closeId !== prevCloseId) {
this._drawer.closeDrawer();
} else if (toggleId !== prevToggleId) {
if (isDrawerOpen) {
this._drawer.closeDrawer();
} else {
let prevIds = [prevOpenId, prevCloseId, prevToggleId];
let changedIds = [openId, closeId, toggleId]
.filter(id => !prevIds.includes(id))
.sort((a, b) => a > b);
changedIds.forEach(id => {
if (id === openId) {
this._drawer.openDrawer();
} else if (id === closeId) {
this._drawer.closeDrawer();
} else if (id === toggleId) {
if (isDrawerOpen) {
this._drawer.closeDrawer();
} else {
this._drawer.openDrawer();
}
}
}
});
}
componentWillUnmount() {