mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-31 04:00:18 -07:00
Initial Commit Rework
This commit is contained in:
parent
74a4cc048c
commit
95051cbd63
2483 changed files with 101351 additions and 111396 deletions
34
frontend/src/Utilities/State/selectProviderSchema.js
Normal file
34
frontend/src/Utilities/State/selectProviderSchema.js
Normal file
|
@ -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;
|
Loading…
Add table
Add a link
Reference in a new issue