Prevent opening more than one file selector

Change-type: patch
This commit is contained in:
Alexis Svinartchouk 2020-11-16 16:14:36 +01:00
parent e7b4f09021
commit 644d955f08

View File

@ -277,6 +277,7 @@ interface SourceSelectorState {
showURLSelector: boolean; showURLSelector: boolean;
showDriveSelector: boolean; showDriveSelector: boolean;
defaultFlowActive: boolean; defaultFlowActive: boolean;
imageSelectorOpen: boolean;
} }
export class SourceSelector extends React.Component< export class SourceSelector extends React.Component<
@ -294,6 +295,7 @@ export class SourceSelector extends React.Component<
showURLSelector: false, showURLSelector: false,
showDriveSelector: false, showDriveSelector: false,
defaultFlowActive: true, defaultFlowActive: true,
imageSelectorOpen: false,
}; };
// Bind `this` since it's used in an event's callback // Bind `this` since it's used in an event's callback
@ -481,6 +483,7 @@ export class SourceSelector extends React.Component<
private async openImageSelector() { private async openImageSelector() {
analytics.logEvent('Open image selector'); analytics.logEvent('Open image selector');
this.setState({ imageSelectorOpen: true });
try { try {
const imagePath = await osDialog.selectImage(); const imagePath = await osDialog.selectImage();
@ -493,6 +496,8 @@ export class SourceSelector extends React.Component<
await this.selectSource(imagePath, sourceDestination.File).promise; await this.selectSource(imagePath, sourceDestination.File).promise;
} catch (error) { } catch (error) {
exceptionReporter.report(error); exceptionReporter.report(error);
} finally {
this.setState({ imageSelectorOpen: false });
} }
} }
@ -609,6 +614,7 @@ export class SourceSelector extends React.Component<
) : ( ) : (
<> <>
<FlowSelector <FlowSelector
disabled={this.state.imageSelectorOpen}
primary={this.state.defaultFlowActive} primary={this.state.defaultFlowActive}
key="Flash from file" key="Flash from file"
flow={{ flow={{