catstodon/app/javascript/mastodon/reducers/alerts.js

31 lines
594 B
JavaScript
Raw Normal View History

import { List as ImmutableList } from 'immutable';
2016-11-20 19:39:18 +01:00
import {
ALERT_SHOW,
ALERT_DISMISS,
ALERT_CLEAR,
2016-11-20 19:39:18 +01:00
} from '../actions/alerts';
const initialState = ImmutableList([]);
2016-11-20 19:39:18 +01:00
let id = 0;
const addAlert = (state, alert) =>
state.push({
key: id++,
...alert,
});
2016-11-20 19:39:18 +01:00
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;
2016-11-20 19:39:18 +01:00
}
}