You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
594 B
30 lines
594 B
import { List as ImmutableList } from 'immutable'; |
|
|
|
import { |
|
ALERT_SHOW, |
|
ALERT_DISMISS, |
|
ALERT_CLEAR, |
|
} from '../actions/alerts'; |
|
|
|
const initialState = ImmutableList([]); |
|
|
|
let id = 0; |
|
|
|
const addAlert = (state, alert) => |
|
state.push({ |
|
key: id++, |
|
...alert, |
|
}); |
|
|
|
export default function alerts(state = initialState, action) { |
|
switch(action.type) { |
|
case ALERT_SHOW: |
|
return addAlert(state, action.alert); |
|
case ALERT_DISMISS: |
|
return state.filterNot(item => item.key === action.alert.key); |
|
case ALERT_CLEAR: |
|
return state.clear(); |
|
default: |
|
return state; |
|
} |
|
}
|
|
|