resources/web/docs_js/actions/settings.js (26 lines of code) (raw):
import Cookies from "../../../../../node_modules/js-cookie";
import {omit, merge, toPairs, forEach} from "../../../../../node_modules/ramda";
import {closeModal} from "./modal";
const SAVE_SETTING = "SAVE_SETTING";
export const setCookies = forEach(([k, v]) => Cookies.set(k, v));
// this is used as a factory so we can mock it up during tests
// the function used in the app is setup below
export const _saveSettings = setCookies =>
m => dispatch => {
const values = omit(["console_curl_password", "kibana_curl_password", "sense_curl_password", "alternativeChangeSource"], m);
setCookies(toPairs(values));
dispatch(closeModal());
return dispatch({
type: SAVE_SETTING,
settings: m
});
};
export const saveSettings = _saveSettings(setCookies);
const initialState = {
/*
language: lang,
langStrings: LangStrings,
baseUrl: base_url,
kibana_url,
console_url,
sense_url,
curl_host: Cookies.get("curl_host") || "localhost:9200",
curl_user: Cookies.get("curl_user"),
curl_password: Cookies.get("curl_password")
*/
};
export const reducer = (state = initialState, action) => {
switch (action.type) {
case SAVE_SETTING:
return merge(state, action.settings);
default:
return state;
}
}