2 * Copyright © 2016-2017 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 import { actionTypes } from './LoaderConstants.js';
19 state = { fetchingRequests: 0, currentlyFetching: [], isLoading: false },
22 let fetchingRequests = state.fetchingRequests;
24 switch (action.type) {
25 case actionTypes.SEND_REQUEST:
27 newArray = state.currentlyFetching.slice();
28 newArray.splice(0, 0, action.url);
30 fetchingRequests: fetchingRequests,
31 currentlyFetching: newArray,
34 case actionTypes.RECEIVE_RESPONSE:
35 if (fetchingRequests > 0) {
39 newArray = state.currentlyFetching.filter(item => {
40 return item !== action.url;
43 currentlyFetching: newArray,
44 fetchingRequests: fetchingRequests,
45 isLoading: fetchingRequests !== 0
47 case actionTypes.SHOW:
48 return { isLoading: true };
49 case actionTypes.HIDE:
50 return { isLoading: false };