at the end of the day, it was inevitable
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
import { createAction, handleActions } from 'redux-actions'
|
||||
import { fromJS } from 'immutable'
|
||||
|
||||
//**** CONSTANTS ****//
|
||||
const NS = '[Share tab]'
|
||||
const SWITCH_SUBSCREEN = `${NS} Switch subscreen`
|
||||
const SWITCH_TABLE = `${NS} Switch table`
|
||||
|
||||
//**** ACTIONS ****//
|
||||
export const switchShareSubScreen = createAction(SWITCH_SUBSCREEN, (type, subScreen) => ({type, subScreen}))
|
||||
export const switchShareTable = createAction(SWITCH_TABLE, (type, table) => ({type, table}))
|
||||
|
||||
export const actions = {
|
||||
switchShareSubScreen,
|
||||
switchShareTable
|
||||
}
|
||||
|
||||
/* TABS SUBSCREENS */
|
||||
export const NOTIFICATION_SUBSCREENS = {
|
||||
TABLES: 'tables',
|
||||
ALERT_FORM: 'alert',
|
||||
NEWSLETTER_FORM: 'newsletter'
|
||||
}
|
||||
|
||||
export const RECEIVER_SUBSCREENS = {
|
||||
TABLES: 'tables',
|
||||
RECIPIENT_FORM: 'recipient',
|
||||
GROUP_FORM: 'group'
|
||||
}
|
||||
|
||||
export const EMAILS_SUBSCREENS = {
|
||||
EMAILS_TABLE: 'table',
|
||||
ALERT_FORM: 'alert',
|
||||
NEWSLETTER_FORM: 'newsletter',
|
||||
FILTERS_TABLE: 'filters'
|
||||
}
|
||||
|
||||
/* TABLES IN 'tables' SUBSCREEN */
|
||||
export const NOTIFICATION_TABLES = {
|
||||
MY_EMAILS: 'myEmails',
|
||||
PUBLISHED: 'publishedEmails'
|
||||
}
|
||||
|
||||
export const RECEIVER_TABLES = {
|
||||
RECIPIENTS: 'recipients',
|
||||
GROUPS: 'groups'
|
||||
}
|
||||
|
||||
/* TABLES IN FORMS */
|
||||
export const RECIPIENT_FORM_TABLES = {
|
||||
EMAIL_HISTORY: 'emailHistory',
|
||||
SUBSCRIPTIONS: 'subscriptions',
|
||||
GROUPS: 'groups'
|
||||
}
|
||||
|
||||
export const GROUP_FORM_TABLES = {
|
||||
EMAIL_HISTORY: 'emailHistory',
|
||||
SUBSCRIPTIONS: 'subscriptions',
|
||||
RECIPIENTS: 'recipients'
|
||||
}
|
||||
|
||||
export const initialState = fromJS({
|
||||
notifications: {
|
||||
subScreenVisible: NOTIFICATION_SUBSCREENS.TABLES,
|
||||
tableVisible: 'myEmails'
|
||||
},
|
||||
recipients: {
|
||||
subScreenVisible: RECEIVER_SUBSCREENS.TABLES,
|
||||
tableVisible: 'recipients'
|
||||
},
|
||||
emails: {
|
||||
subScreenVisible: EMAILS_SUBSCREENS.EMAILS_TABLE
|
||||
}
|
||||
})
|
||||
|
||||
//**** REDUCERS ****//
|
||||
export default handleActions({
|
||||
[SWITCH_SUBSCREEN]: (state, {payload}) => {
|
||||
const { type, subScreen } = payload
|
||||
return state.setIn([type, 'subScreenVisible'], subScreen)
|
||||
},
|
||||
|
||||
[SWITCH_TABLE]: (state, {payload}) => {
|
||||
const { type, table } = payload
|
||||
return state.setIn([type, 'tableVisible'], table)
|
||||
}
|
||||
}, initialState)
|
||||
Reference in New Issue
Block a user