Skip to content

Commit 413f612

Browse files
adding error handling for when exportAsfile might fail
1 parent 4a4b938 commit 413f612

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

ui/helpers/utils/export-utils.js

+9-5
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,15 @@ export async function exportAsFile(filename, data, contentType) {
2626
throw new Error(`Unsupported file type: ${contentType}`);
2727
}
2828

29-
if (supportsShowSaveFilePicker()) {
30-
// Preferred method for downloads
31-
await saveFileUsingFilePicker(filename, data, contentType);
32-
} else {
33-
saveFileUsingDataUri(filename, data, contentType);
29+
try {
30+
if (supportsShowSaveFilePicker()) {
31+
// Preferred method for downloads
32+
await saveFileUsingFilePicker(filename, data, contentType);
33+
} else {
34+
saveFileUsingDataUri(filename, data, contentType);
35+
}
36+
} catch (error) {
37+
throw new Error('Failed to download state log.');
3438
}
3539
}
3640
/**

ui/pages/settings/advanced-tab/advanced-tab.component.js

+10-6
Original file line numberDiff line numberDiff line change
@@ -134,15 +134,19 @@ export default class AdvancedTab extends PureComponent {
134134
type="secondary"
135135
large
136136
onClick={() => {
137-
window.logStateString((err, result) => {
137+
window.logStateString(async (err, result) => {
138138
if (err) {
139139
displayWarning(t('stateLogError'));
140140
} else {
141-
exportAsFile(
142-
`${t('stateLogFileName')}.json`,
143-
result,
144-
ExportableContentType.JSON,
145-
);
141+
try {
142+
await exportAsFile(
143+
`${t('stateLogFileName')}.json`,
144+
result,
145+
ExportableContentType.JSON,
146+
);
147+
} catch (error) {
148+
displayWarning(error);
149+
}
146150
}
147151
});
148152
}}

0 commit comments

Comments
 (0)