mirror of
https://github.com/alice-lg/alice-lg.git
synced 2024-05-11 05:55:03 +00:00
86 lines
1.8 KiB
JavaScript
86 lines
1.8 KiB
JavaScript
|
|
/*
|
|
* This will migrate to become the neighbors
|
|
* reducer. Currently neihgbors are stored in
|
|
* the routeserver reducer.
|
|
*/
|
|
|
|
import {SET_FILTER_VALUE} from './actions'
|
|
|
|
import {LOAD_ROUTESERVER_PROTOCOL_REQUEST,
|
|
LOAD_ROUTESERVER_PROTOCOL_SUCCESS,
|
|
LOAD_ROUTESERVER_PROTOCOL_ERROR}
|
|
from '../actions'
|
|
|
|
const LOCATION_CHANGE = '@@router/LOCATION_CHANGE';
|
|
|
|
const DEFAULT_SORT_COLUMN = "asn";
|
|
const DEFAULT_SORT_ORDER = "asc";
|
|
|
|
const initialState = {
|
|
sortColumn: DEFAULT_SORT_COLUMN,
|
|
sortOrder: DEFAULT_SORT_ORDER,
|
|
|
|
isLoading: false,
|
|
|
|
cachedAt: null,
|
|
cacheTtl: null,
|
|
|
|
filterQuery: "",
|
|
filterValue: ""
|
|
};
|
|
|
|
|
|
// Reducer functions
|
|
|
|
function _handleLocationChange(state, payload) {
|
|
const query = payload.query;
|
|
const sort = query["s"] || DEFAULT_SORT_COLUMN;
|
|
const order = query["o"] || DEFAULT_SORT_ORDER;
|
|
const filterQuery = query["q"] || "";
|
|
|
|
return Object.assign({}, state, {
|
|
sortColumn: sort,
|
|
sortOrder: order,
|
|
|
|
filterQuery: filterQuery,
|
|
filterValue: filterQuery
|
|
});
|
|
}
|
|
|
|
|
|
export default function(state=initialState, action) {
|
|
switch (action.type) {
|
|
case LOCATION_CHANGE:
|
|
return _handleLocationChange(state, action.payload);
|
|
|
|
case SET_FILTER_VALUE:
|
|
return Object.assign({}, state, {
|
|
filterValue: action.payload.value
|
|
});
|
|
|
|
case LOAD_ROUTESERVER_PROTOCOL_REQUEST:
|
|
return Object.assign({}, state, {
|
|
isLoading: true,
|
|
});
|
|
|
|
case LOAD_ROUTESERVER_PROTOCOL_ERROR:
|
|
return Object.assign({}, state, {
|
|
isLoading: false,
|
|
});
|
|
|
|
// TODO: move neighbors list here
|
|
case LOAD_ROUTESERVER_PROTOCOL_SUCCESS:
|
|
return Object.assign({}, state, {
|
|
isLoading: false,
|
|
cachedAt: action.payload.api.cache_status.cached_at,
|
|
cacheTtl: action.payload.api.ttl,
|
|
});
|
|
|
|
default:
|
|
}
|
|
|
|
return state;
|
|
}
|
|
|