about summary refs log tree commit diff
path: root/app/javascript/themes/glitch/reducers/height_cache.js
blob: 93c31b42c13d0bbea5fd660c14c1e94fd79d4c49 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import { Map as ImmutableMap } from 'immutable';
import { HEIGHT_CACHE_SET, HEIGHT_CACHE_CLEAR } from 'themes/glitch/actions/height_cache';

const initialState = ImmutableMap();

const setHeight = (state, key, id, height) => {
  return state.update(key, ImmutableMap(), map => map.set(id, height));
};

const clearHeights = () => {
  return ImmutableMap();
};

export default function statuses(state = initialState, action) {
  switch(action.type) {
  case HEIGHT_CACHE_SET:
    return setHeight(state, action.key, action.id, action.height);
  case HEIGHT_CACHE_CLEAR:
    return clearHeights();
  default:
    return state;
  }
};