diff --git a/src/api/projects.js b/src/api/projects.js index 3510ca29d..f64717995 100644 --- a/src/api/projects.js +++ b/src/api/projects.js @@ -57,6 +57,15 @@ export function getProjectById(projectId) { a.downloadUrl = `/projects/${projectId}/attachments/${a.id}` }) if (!res.invites) res.invites = [] + if (res.details.utm && !res.details.utm.code) { + res.details.utm.code = "" + } + if (res.details.appDefinition && !res.details.appDefinition.features) { + res.details.appDefinition.features = {} + } + if (res.details.apiDefinition && !res.details.apiDefinition.notes) { + res.details.apiDefinition.notes = "" + } return res }) } diff --git a/src/projects/reducers/project.js b/src/projects/reducers/project.js index 8d9ebaa5a..e0c263a67 100644 --- a/src/projects/reducers/project.js +++ b/src/projects/reducers/project.js @@ -617,7 +617,15 @@ export const projectState = function (state=initialState, action) { } case PROJECT_DIRTY: { - const updatedProject = _.mergeWith({}, _.omit(state.project, 'isDirty'), action.payload, + let payload = action.payload + let stateProject = _.omit(state.project, 'isDirty') + if (action.payload.details.appDefinition.targetDevices) { + if (action.payload.details.appDefinition.targetDevices.indexOf('web-browser') == -1) { + payload = _.omit(action.payload, 'details.appDefinition.progressiveResponsive') + stateProject = _.omit(state.project, ['isDirty','details.appDefinition.progressiveResponsive']) + } + } + const updatedProject = _.mergeWith({}, stateProject, payload, // customizer to override arrays with changed values (objValue, srcValue, key) => { // when we update some array values, we have to replace them completely, rather than merge