diff --git a/js/components/snapshot/modals/downloadStructuresDialog.js b/js/components/snapshot/modals/downloadStructuresDialog.js index e4775552e..b41bf4b3b 100644 --- a/js/components/snapshot/modals/downloadStructuresDialog.js +++ b/js/components/snapshot/modals/downloadStructuresDialog.js @@ -470,6 +470,13 @@ export const DownloadStructureDialog = memo(({}) => { } }; + const resetDownloadOnChange = () => { + setSelectedDownload(newDownload); + setDownloadTagUrl(null); + setFileSize(null); + setDownloadUrl(null); + }; + const copyPOSTJson = () => { const requestObject = prepareRequestObject(); const jsonString = JSON.stringify(requestObject); @@ -563,7 +570,14 @@ export const DownloadStructureDialog = memo(({}) => { } + control={ + { + resetDownloadOnChange(); + }} + /> + } label={text} /> ); @@ -578,11 +592,12 @@ export const DownloadStructureDialog = memo(({}) => { control={ + onChange={() => { setMapFiles(prevState => { return { ...prevState, [flag]: !prevState[flag] }; - }) - } + }); + resetDownloadOnChange(); + }} disabled={zipPreparing} /> } @@ -599,11 +614,12 @@ export const DownloadStructureDialog = memo(({}) => { control={ + onChange={() => { setCrystallographicFiles(prevState => { return { ...prevState, [flag]: !prevState[flag] }; - }) - } + }); + resetDownloadOnChange(); + }} disabled={zipPreparing || disabled} /> } @@ -626,6 +642,7 @@ export const DownloadStructureDialog = memo(({}) => { name="radio-group-download-type" onChange={event => { setLinkType(event.currentTarget.value); + resetDownloadOnChange(); }} > {PERMALINK_OPTIONS.map(({ flag, text }) => { @@ -633,7 +650,14 @@ export const DownloadStructureDialog = memo(({}) => { } + control={ + { + resetDownloadOnChange(); + }} + /> + } label={text} /> ); @@ -648,11 +672,12 @@ export const DownloadStructureDialog = memo(({}) => { control={ + onChange={() => { setOthers(prevState => { return { ...prevState, [flag]: !prevState[flag] }; - }) - } + }); + resetDownloadOnChange(); + }} disabled={zipPreparing} /> } diff --git a/js/reducers/api/apiReducers.js b/js/reducers/api/apiReducers.js index b74af2b7a..51fb3ff21 100644 --- a/js/reducers/api/apiReducers.js +++ b/js/reducers/api/apiReducers.js @@ -266,8 +266,8 @@ export default function apiReducers(state = INITIAL_STATE, action = {}) { return { ...state, downloadTags: [...action.downloadTags] }; case constants.APPEND_TO_DOWNLOAD_TAGS: - if (!state.downloadTags.find(dt => action.tag.tag)) { - return { ...state, downloadTags: [...state.downloadTags, action.tag] }; + if (!state.downloadTags.find(dt => dt.tag === action.tag.tag)) { + return { ...state, downloadTags: [...state.downloadTags, { ...action.tag }] }; } else { return state; }