Add manifest.json, icons and install button, flatten client/src
This commit is contained in:
parent
a219e689c1
commit
474afda9c2
105 changed files with 338 additions and 283 deletions
127
client/js/state/settings.js
Normal file
127
client/js/state/settings.js
Normal file
|
@ -0,0 +1,127 @@
|
|||
import assign from 'lodash/assign';
|
||||
import createReducer from 'utils/createReducer';
|
||||
import * as actions from './actions';
|
||||
|
||||
export const getSettings = state => state.settings;
|
||||
|
||||
export default createReducer(
|
||||
{},
|
||||
{
|
||||
[actions.UPLOAD_CERT](state) {
|
||||
state.uploadingCert = true;
|
||||
},
|
||||
|
||||
[actions.socket.CERT_SUCCESS](state) {
|
||||
state.uploadingCert = false;
|
||||
delete state.certFile;
|
||||
delete state.cert;
|
||||
delete state.keyFile;
|
||||
delete state.key;
|
||||
},
|
||||
|
||||
[actions.socket.CERT_FAIL](state, action) {
|
||||
state.uploadingCert = false;
|
||||
state.certError = action.message;
|
||||
},
|
||||
|
||||
[actions.SET_CERT_ERROR](state, action) {
|
||||
state.uploadingCert = false;
|
||||
state.certError = action.message;
|
||||
},
|
||||
|
||||
[actions.SET_CERT](state, action) {
|
||||
state.certFile = action.fileName;
|
||||
state.cert = action.cert;
|
||||
},
|
||||
|
||||
[actions.SET_KEY](state, action) {
|
||||
state.keyFile = action.fileName;
|
||||
state.key = action.key;
|
||||
},
|
||||
|
||||
[actions.SETTINGS_SET](state, { key, value, settings }) {
|
||||
if (settings) {
|
||||
assign(state, settings);
|
||||
} else {
|
||||
state[key] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
export function setCertError(message) {
|
||||
return {
|
||||
type: actions.SET_CERT_ERROR,
|
||||
message
|
||||
};
|
||||
}
|
||||
|
||||
export function uploadCert() {
|
||||
return (dispatch, getState) => {
|
||||
const { settings } = getState();
|
||||
if (settings.cert && settings.key) {
|
||||
dispatch({
|
||||
type: actions.UPLOAD_CERT,
|
||||
socket: {
|
||||
type: 'cert',
|
||||
data: {
|
||||
cert: settings.cert,
|
||||
key: settings.key
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
dispatch(setCertError('Missing certificate or key'));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function setCert(fileName, cert) {
|
||||
return {
|
||||
type: actions.SET_CERT,
|
||||
fileName,
|
||||
cert: cert
|
||||
};
|
||||
}
|
||||
|
||||
export function setKey(fileName, key) {
|
||||
return {
|
||||
type: actions.SET_KEY,
|
||||
fileName,
|
||||
key: key
|
||||
};
|
||||
}
|
||||
|
||||
export function setSetting(key, value) {
|
||||
return {
|
||||
type: actions.SETTINGS_SET,
|
||||
key,
|
||||
value,
|
||||
socket: {
|
||||
type: 'settings_set',
|
||||
data: {
|
||||
[key]: value
|
||||
},
|
||||
debounce: {
|
||||
delay: 250,
|
||||
key: `settings:${key}`
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function setSettings(settings, local = false) {
|
||||
const action = {
|
||||
type: actions.SETTINGS_SET,
|
||||
settings
|
||||
};
|
||||
|
||||
if (!local) {
|
||||
action.socket = {
|
||||
type: 'settings_set',
|
||||
data: settings
|
||||
};
|
||||
}
|
||||
|
||||
return action;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue