Make "Run on Startup" UI state persistent #2265 (#2266)

This commit is contained in:
Jason C. McDonald 2021-02-01 20:39:41 -08:00 committed by GitHub
parent 66a437e64d
commit 293e930c78
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -78,12 +78,14 @@ class DefaultMailClientItem extends React.Component<{}, DefaultMailClientItemSta
} }
} }
interface LaunchSystemStartItemState {
launchOnStart: boolean | 'unavailable';
}
class LaunchSystemStartItem extends React.Component { class LaunchSystemStartItem extends React.Component {
_service = new SystemStartService(); _service = new SystemStartService();
state = {
available: false, state: LaunchSystemStartItemState = { launchOnStart: 'unavailable' };
launchOnStart: false,
};
_mounted: boolean; _mounted: boolean;
@ -92,12 +94,13 @@ class LaunchSystemStartItem extends React.Component {
const available = await service.checkAvailability(); const available = await service.checkAvailability();
if (!this._mounted) return; if (!this._mounted) return;
this.setState({ available });
if (available) { if (available) {
const launchOnStart = service.doesLaunchOnSystemStart(); const launchOnStart = await service.doesLaunchOnSystemStart();
if (!this._mounted) return; if (!this._mounted) return;
this.setState({ launchOnStart }); this.setState({ launchOnStart: launchOnStart });
} else {
this.setState({ launchOnStart: 'unavailable' });
} }
} }
@ -117,7 +120,7 @@ class LaunchSystemStartItem extends React.Component {
}; };
render() { render() {
if (!this.state.available) return false; if (this.state.launchOnStart === 'unavailable') return false;
return ( return (
<div className="item"> <div className="item">