-
Notifications
You must be signed in to change notification settings - Fork 503
/
reducers.js
43 lines (40 loc) · 1.5 KB
/
reducers.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import { merge, path } from 'ramda'
import * as AT from './actionTypes'
const INITIAL_STATE = {
trayOpened: false,
trayContent: '',
menuOpened: true,
settingsOpened: false
}
export default (state = INITIAL_STATE, action) => {
const { type, payload } = action
switch (type) {
case AT.LAYOUT_WALLET_HEADER_FAQ_CLICKED: {
return state.trayContent !== 'faq' || !state.trayOpened
? merge(state, { trayOpened: true, trayContent: 'faq' })
: merge(state, { trayOpened: false, trayContent: '' })
}
case AT.LAYOUT_WALLET_HEADER_WHATSNEW_CLICKED: {
return state.trayContent !== 'whatsnew' || !state.trayOpened
? merge(state, { trayOpened: true, trayContent: 'whatsnew' })
: merge(state, { trayOpened: false, trayContent: '' })
}
case AT.LAYOUT_WALLET_TRAY_CLOSE_CLICKED: {
return merge(state, { trayOpened: false, trayContent: '' })
}
case '@@router/LOCATION_CHANGE': {
const pathname = path(['location', 'pathname'], payload)
const settingsOpened = pathname && pathname.indexOf('/settings') > -1
const shouldOpenSettings = !state.settingsOpened && settingsOpened
return merge(state, { trayOpened: false, trayContent: '', menuOpened: shouldOpenSettings, settingsOpened })
}
case AT.LAYOUT_WALLET_MENU_TOGGLE_CLICKED: {
return merge(state, { menuOpened: !state.menuOpened })
}
case AT.LAYOUT_WALLET_MENU_CLOSE_CLICKED: {
return merge(state, { trayOpened: false })
}
default:
return state
}
}