import { React, DefaultClientHelper } from 'mailspring-exports';
import { Notification } from 'mailspring-component-kit';
const SETTINGS_KEY = 'mailto.prompted-about-default';
export default class DefaultClientNotification extends React.Component {
static displayName = 'DefaultClientNotification';
constructor() {
super();
this.helper = new DefaultClientHelper();
this.state = this.getStateFromStores();
this.state.initializing = true;
this.mounted = false;
}
componentDidMount() {
this.mounted = true;
this.helper.isRegisteredForURLScheme('mailto', registered => {
if (this.mounted) {
this.setState({
initializing: false,
registered: registered,
});
}
});
this.disposable = AppEnv.config.onDidChange(SETTINGS_KEY, () =>
this.setState(this.getStateFromStores())
);
}
componentWillUnmount() {
this.mounted = false;
this.disposable.dispose();
}
getStateFromStores() {
return {
alreadyPrompted: AppEnv.config.get(SETTINGS_KEY),
};
}
_onAccept = () => {
this.helper.registerForURLScheme('mailto', err => {
if (err) {
AppEnv.reportError(err);
}
});
AppEnv.config.set(SETTINGS_KEY, true);
};
_onDecline = () => {
AppEnv.config.set(SETTINGS_KEY, true);
};
render() {
if (this.state.initializing || this.state.alreadyPrompted || this.state.registered) {
return ;
}
return (
);
}
}