57 lines
1.4 KiB
JavaScript
Raw Normal View History

2017-12-02 13:37:58 +01:00
/*
*
* InstallPluginPage reducer
*
*/
import { fromJS, List } from 'immutable';
import {
DOWNLOAD_PLUGIN,
DOWNLOAD_PLUGIN_ERROR,
DOWNLOAD_PLUGIN_SUCCEEDED,
2018-08-08 17:25:25 +02:00
GET_AVAILABLE_PLUGINS_SUCCEEDED,
GET_INSTALLED_PLUGINS_SUCCEEDED,
2017-12-02 13:37:58 +01:00
ON_CHANGE,
} from './constants';
const initialState = fromJS({
availablePlugins: List([]),
2018-08-08 17:25:25 +02:00
installedPlugins: List([]),
blockApp: false,
2017-12-02 13:37:58 +01:00
didFetchPlugins: false,
2018-08-08 17:25:25 +02:00
didFetchInstalledPlugins: false,
pluginToDownload: '',
2017-12-02 13:37:58 +01:00
search: '',
});
function installPluginPageReducer(state = initialState, action) {
switch (action.type) {
case DOWNLOAD_PLUGIN:
return state
.set('blockApp', true)
.set('pluginToDownload', action.pluginToDownload);
case DOWNLOAD_PLUGIN_ERROR:
return state
.set('blockApp', false)
.set('pluginToDownload', '');
case DOWNLOAD_PLUGIN_SUCCEEDED:
return state
.set('blockApp', false)
.set('pluginToDownload', '');
2018-08-08 17:25:25 +02:00
case GET_AVAILABLE_PLUGINS_SUCCEEDED:
2017-12-02 13:37:58 +01:00
return state
.set('didFetchPlugins', true)
2017-12-02 16:10:18 +01:00
.set('availablePlugins', List(action.availablePlugins));
2018-08-08 17:25:25 +02:00
case GET_INSTALLED_PLUGINS_SUCCEEDED:
return state
.set('didFetchInstalledPlugins', true)
.set('installedPlugins', List(action.installedPlugins));
2017-12-02 13:37:58 +01:00
case ON_CHANGE:
return state.updateIn(action.keys, () => action.value);
default:
return state;
}
}
export default installPluginPageReducer;