Files
masto-fe-archos/app/javascript/mastodon/reducers/domain_lists.js
2025-10-12 13:42:02 +02:00

27 lines
896 B
JavaScript

import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from "immutable";
import {
DOMAIN_BLOCKS_FETCH_SUCCESS,
DOMAIN_BLOCKS_EXPAND_SUCCESS,
DOMAIN_UNBLOCK_SUCCESS,
} from "../actions/domain_blocks";
const initialState = ImmutableMap({
blocks: ImmutableMap({
items: ImmutableOrderedSet(),
}),
});
export default function domainLists(state = initialState, action) {
switch(action.type) {
case DOMAIN_BLOCKS_FETCH_SUCCESS:
return state.setIn(["blocks", "items"], ImmutableOrderedSet(action.domains)).setIn(["blocks", "next"], action.next);
case DOMAIN_BLOCKS_EXPAND_SUCCESS:
return state.updateIn(["blocks", "items"], set => set.union(action.domains)).setIn(["blocks", "next"], action.next);
case DOMAIN_UNBLOCK_SUCCESS:
return state.updateIn(["blocks", "items"], set => set.delete(action.domain));
default:
return state;
}
}