import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable'; import { TRENDING_STATUSES_FETCH_REQUEST, TRENDING_STATUSES_FETCH_SUCCESS, } from 'soapbox/actions/trending_statuses'; const initialState = ImmutableMap({ items: ImmutableOrderedSet(), isLoading: false, }); const toIds = items => ImmutableOrderedSet(items.map(item => item.id)); const importStatuses = (state, statuses) => { return state.withMutations(state => { state.set('items', toIds(statuses)); state.set('isLoading', false); }); }; export default function trending_statuses(state = initialState, action) { switch (action.type) { case TRENDING_STATUSES_FETCH_REQUEST: return state.set('isLoading', true); case TRENDING_STATUSES_FETCH_SUCCESS: return importStatuses(state, action.statuses); default: return state; } }