2017-12-02 13:37:58 +01:00
|
|
|
/*
|
|
|
|
*
|
|
|
|
* InstallPluginPage reducer
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
import { fromJS, List } from 'immutable';
|
|
|
|
import {
|
2017-12-12 19:53:04 +01:00
|
|
|
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([]),
|
2017-12-12 19:53:04 +01:00
|
|
|
blockApp: false,
|
2017-12-02 13:37:58 +01:00
|
|
|
didFetchPlugins: false,
|
2018-08-08 17:25:25 +02:00
|
|
|
didFetchInstalledPlugins: false,
|
2017-12-12 19:53:04 +01:00
|
|
|
pluginToDownload: '',
|
2017-12-02 13:37:58 +01:00
|
|
|
search: '',
|
|
|
|
});
|
|
|
|
|
|
|
|
function installPluginPageReducer(state = initialState, action) {
|
|
|
|
switch (action.type) {
|
2017-12-12 19:53:04 +01:00
|
|
|
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;
|