p5.js-web-editor/client/modules/IDE/actions/preferences.js

147 lines
3.1 KiB
JavaScript
Raw Normal View History

2016-06-22 19:58:23 +00:00
import * as ActionTypes from '../../../constants';
import axios from 'axios';
2016-06-22 19:58:23 +00:00
const ROOT_URL = location.href.indexOf('localhost') > 0 ? 'http://localhost:8000/api' : '/api';
function updatePreferences(formParams, dispatch) {
axios.put(`${ROOT_URL}/preferences`, formParams, { withCredentials: true })
.then(() => {
})
.catch((response) => dispatch({
type: ActionTypes.ERROR,
error: response.data
}));
}
2016-07-06 15:27:39 +00:00
export function setFontSize(value) {
return (dispatch, getState) => { // eslint-disable-line
dispatch({
type: ActionTypes.SET_FONT_SIZE,
value
});
const state = getState();
if (state.user.authenticated) {
const formParams = {
preferences: {
fontSize: value
}
};
updatePreferences(formParams, dispatch);
}
2016-07-11 00:13:37 +00:00
};
}
export function setIndentation(value) {
return (dispatch, getState) => {
dispatch({
type: ActionTypes.SET_INDENTATION,
value
});
const state = getState();
if (state.user.authenticated) {
const formParams = {
preferences: {
indentationAmount: value
}
};
updatePreferences(formParams, dispatch);
}
2016-07-11 00:13:37 +00:00
};
}
2016-07-11 02:52:48 +00:00
export function indentWithTab() {
return (dispatch, getState) => {
dispatch({
type: ActionTypes.INDENT_WITH_TAB
});
const state = getState();
if (state.user.authenticated) {
const formParams = {
preferences: {
isTabIndent: true
}
};
updatePreferences(formParams, dispatch);
}
2016-07-11 02:52:48 +00:00
};
}
export function indentWithSpace() {
return (dispatch, getState) => {
dispatch({
type: ActionTypes.INDENT_WITH_SPACE
});
const state = getState();
if (state.user.authenticated) {
const formParams = {
preferences: {
isTabIndent: false
}
};
updatePreferences(formParams, dispatch);
}
2016-07-11 02:52:48 +00:00
};
}
2016-08-09 18:20:54 +00:00
export function setAutosave(value) {
2016-08-09 20:15:28 +00:00
return (dispatch, getState) => {
dispatch({
type: ActionTypes.SET_AUTOSAVE,
value
});
const state = getState();
if (state.user.authenticated) {
const formParams = {
preferences: {
autosave: value
}
};
updatePreferences(formParams, dispatch);
}
2016-08-09 18:20:54 +00:00
};
}
2016-08-11 18:09:59 +00:00
export function setLintWarning(value) {
return (dispatch, getState) => {
dispatch({
type: ActionTypes.SET_LINT_WARNING,
value
});
const state = getState();
if (state.user.authenticated) {
const formParams = {
preferences: {
lintWarning: value
}
};
updatePreferences(formParams, dispatch);
}
};
}
2016-08-12 19:50:33 +00:00
export function setTextOutput(value) {
return (dispatch, getState) => {
dispatch({
type: ActionTypes.SET_TEXT_OUTPUT,
value
});
const state = getState();
if (state.user.authenticated) {
const formParams = {
preferences: {
textOutput: value
}
};
updatePreferences(formParams, dispatch);
}
};
}
export function setTheme(value) {
return {
type: ActionTypes.SET_THEME,
value
};
}