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;
}