Merge pull request #9991 from BerkeleyTrue/feature/close-map-drawer
Feaure(map): close map drawer on challenge transition
This commit is contained in:
@ -129,6 +129,15 @@ export const toggleMapDrawer = createAction(
|
|||||||
label: 'Map drawer toggled'
|
label: 'Map drawer toggled'
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
export const closeMapDrawer = createAction(
|
||||||
|
types.closeMapDrawer,
|
||||||
|
null,
|
||||||
|
() => createEventMeta({
|
||||||
|
category: 'Nav',
|
||||||
|
action: 'clicked',
|
||||||
|
label: 'Map drawer closed'
|
||||||
|
})
|
||||||
|
);
|
||||||
export const toggleMainChat = createAction(
|
export const toggleMainChat = createAction(
|
||||||
types.toggleMainChat,
|
types.toggleMainChat,
|
||||||
null,
|
null,
|
||||||
|
@ -51,6 +51,10 @@ export default handleActions(
|
|||||||
isMapAlreadyLoaded: true,
|
isMapAlreadyLoaded: true,
|
||||||
isMapDrawerOpen: !state.isMapDrawerOpen
|
isMapDrawerOpen: !state.isMapDrawerOpen
|
||||||
}),
|
}),
|
||||||
|
[types.closeMapDrawer]: state => ({
|
||||||
|
...state,
|
||||||
|
isMapDrawerOpen: false
|
||||||
|
}),
|
||||||
[types.toggleMainChat]: state => ({
|
[types.toggleMainChat]: state => ({
|
||||||
...state,
|
...state,
|
||||||
isMainChatOpen: !state.isMainChatOpen
|
isMainChatOpen: !state.isMainChatOpen
|
||||||
|
@ -32,6 +32,7 @@ export default createTypes([
|
|||||||
|
|
||||||
// drawers
|
// drawers
|
||||||
'toggleMapDrawer',
|
'toggleMapDrawer',
|
||||||
|
'closeMapDrawer',
|
||||||
'toggleWikiDrawer',
|
'toggleWikiDrawer',
|
||||||
|
|
||||||
// chat
|
// chat
|
||||||
|
@ -8,8 +8,9 @@ import debug from 'debug';
|
|||||||
|
|
||||||
import { updateCurrentChallenge } from '../../redux/actions';
|
import { updateCurrentChallenge } from '../../redux/actions';
|
||||||
import { makePanelHiddenSelector } from '../../redux/selectors';
|
import { makePanelHiddenSelector } from '../../redux/selectors';
|
||||||
|
import { closeMapDrawer } from '../../../../redux/actions';
|
||||||
|
|
||||||
const bindableActions = { updateCurrentChallenge };
|
const bindableActions = { closeMapDrawer, updateCurrentChallenge };
|
||||||
const makeMapStateToProps = () => createSelector(
|
const makeMapStateToProps = () => createSelector(
|
||||||
(_, props) => props.dashedName,
|
(_, props) => props.dashedName,
|
||||||
state => state.entities.challenge,
|
state => state.entities.challenge,
|
||||||
@ -34,6 +35,7 @@ const makeMapStateToProps = () => createSelector(
|
|||||||
export class Challenge extends PureComponent {
|
export class Challenge extends PureComponent {
|
||||||
constructor(...args) {
|
constructor(...args) {
|
||||||
super(...args);
|
super(...args);
|
||||||
|
this.handleChallengeClick = this.handleChallengeClick.bind(this);
|
||||||
}
|
}
|
||||||
static displayName = 'Challenge';
|
static displayName = 'Challenge';
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
@ -45,9 +47,15 @@ export class Challenge extends PureComponent {
|
|||||||
isCompleted: PropTypes.bool,
|
isCompleted: PropTypes.bool,
|
||||||
isHidden: PropTypes.bool,
|
isHidden: PropTypes.bool,
|
||||||
challenge: PropTypes.object,
|
challenge: PropTypes.object,
|
||||||
updateCurrentChallenge: PropTypes.func
|
updateCurrentChallenge: PropTypes.func.isRequired,
|
||||||
|
closeMapDrawer: PropTypes.func.isRequired
|
||||||
};
|
};
|
||||||
|
|
||||||
|
handleChallengeClick() {
|
||||||
|
this.props.closeMapDrawer();
|
||||||
|
this.props.updateCurrentChallenge(this.props.challenge);
|
||||||
|
}
|
||||||
|
|
||||||
renderCompleted(isCompleted, isLocked) {
|
renderCompleted(isCompleted, isLocked) {
|
||||||
if (isLocked || !isCompleted) {
|
if (isLocked || !isCompleted) {
|
||||||
return null;
|
return null;
|
||||||
@ -100,9 +108,7 @@ export class Challenge extends PureComponent {
|
|||||||
isCompleted,
|
isCompleted,
|
||||||
isComingSoon,
|
isComingSoon,
|
||||||
isDev,
|
isDev,
|
||||||
isHidden,
|
isHidden
|
||||||
challenge,
|
|
||||||
updateCurrentChallenge
|
|
||||||
} = this.props;
|
} = this.props;
|
||||||
if (isHidden) {
|
if (isHidden) {
|
||||||
return null;
|
return null;
|
||||||
@ -131,7 +137,7 @@ export class Challenge extends PureComponent {
|
|||||||
key={ title }
|
key={ title }
|
||||||
>
|
>
|
||||||
<Link to={ `/challenges/${block}/${dashedName}` }>
|
<Link to={ `/challenges/${block}/${dashedName}` }>
|
||||||
<span onClick={ () => updateCurrentChallenge(challenge) }>
|
<span onClick={ this.handleChallengeClick }>
|
||||||
{ title }
|
{ title }
|
||||||
{ this.renderCompleted(isCompleted, isLocked) }
|
{ this.renderCompleted(isCompleted, isLocked) }
|
||||||
{ this.renderRequired(isRequired) }
|
{ this.renderRequired(isRequired) }
|
||||||
|
Reference in New Issue
Block a user