actions/StateConfigAction.js

/**
 * Функции для изменения текущего состояния config
 * @module StateConfigAction
 * @author Ihor Bielchenko
 */

/**
 * Обновление текущего состояния
 * @param {Object} config
 * @param {Function} callback
 * @return {Function}
 */
export function update(config, callback = () => {}) {
	return (dispatch) => {
		dispatch({
			type: 'UPDATE_CONFIG',
			payload: config
		});
		callback();
	}
}

/**
 * Показ попапов или выпадающих списков
 * @param {Object} config
 * @param {String} element Какой элемент нужно показать
 * @param {Function} callback
 * @return {Function}
 */
export function showElement(config, element, callback = () => {}) {
	return (dispatch) => {
		var i;
		if(config[element] === 1) {
			for(i in config) {
				config[i] = 0;
			}
		}

		else {
			for(i in config) {
				config[i] = 0;
			}
			config[element] = 1;
		}

		dispatch({
			type: 'CURRENT_ELEMENT_SHOW',
			payload: config
		});
		callback();
	}
}

/**
 * Показать лоадер для аватара
 * @param {Object} config
 * @param {Function} callback
 * @return {Function}
 */
export function avatarLoader(config, callback = () => {}) {
	return (dispatch) => {
		if(config['show_avatar_loader'] === 1) {
			config['show_avatar_loader'] = 0;
		}
		else config['show_avatar_loader'] = 1;

		dispatch({
			type: 'AVATAR_LOADER',
			payload: config
		});
		callback();
	}
}