Initial Commit Rework

This commit is contained in:
Qstick
2017-09-03 22:20:56 -04:00
parent 74a4cc048c
commit 95051cbd63
2483 changed files with 101351 additions and 111396 deletions
@@ -0,0 +1,30 @@
import _ from 'lodash';
function getProviderState(payload, getState, getFromState) {
const id = payload.id;
const state = getFromState(getState());
const pendingChanges = Object.assign({}, state.pendingChanges);
const pendingFields = state.pendingChanges.fields || {};
delete pendingChanges.fields;
const item = id ? _.find(state.items, { id }) : state.selectedSchema || state.schema || {};
if (item.fields) {
pendingChanges.fields = _.reduce(item.fields, (result, field) => {
const value = pendingFields.hasOwnProperty(field.name) ?
pendingFields[field.name] :
field.value;
result.push({
...field,
value
});
return result;
}, []);
}
return Object.assign({}, item, pendingChanges);
}
export default getProviderState;
@@ -0,0 +1,9 @@
function getSectionState(state, section) {
if (state.hasOwnProperty(section)) {
return Object.assign({}, state[section]);
}
return Object.assign({}, state);
}
export default getSectionState;
@@ -0,0 +1,34 @@
import _ from 'lodash';
import getSectionState from 'Utilities/State/getSectionState';
import updateSectionState from 'Utilities/State/updateSectionState';
function applySchemaDefaults(selectedSchema, schemaDefaults) {
if (!schemaDefaults) {
return selectedSchema;
} else if (_.isFunction(schemaDefaults)) {
return schemaDefaults(selectedSchema);
}
return Object.assign(selectedSchema, schemaDefaults);
}
function selectProviderSchema(state, section, payload, schemaDefaults) {
const newState = getSectionState(state, section);
const {
implementation,
presetName
} = payload;
const selectedImplementation = _.find(newState.schema, { implementation });
const selectedSchema = presetName ?
_.find(selectedImplementation.presets, { name: presetName }) :
selectedImplementation;
newState.selectedSchema = applySchemaDefaults(_.cloneDeep(selectedSchema), schemaDefaults);
return updateSectionState(state, section, newState);
}
export default selectProviderSchema;
@@ -0,0 +1,9 @@
function updateSectionState(state, section, newState) {
if (state.hasOwnProperty(section)) {
return Object.assign({}, state, { [section]: newState });
}
return Object.assign({}, state, newState);
}
export default updateSectionState;