import React from 'react'; import {LaunchServices, SystemStartService} from 'nylas-exports'; import ConfigSchemaItem from './config-schema-item'; class DefaultMailClientItem extends React.Component { constructor() { super(); this.state = {}; this._services = new LaunchServices(); if (this._services.available()) { this._services.isRegisteredForURLScheme('mailto', (registered) => { if (this._mounted) this.setState({defaultClient: registered}); }); } } componentDidMount() { this._mounted = true; } componentWillUnmount() { this._mounted = false; } toggleDefaultMailClient = (event) => { if (this.state.defaultClient) { this.setState({defaultClient: false}); this._services.resetURLScheme('mailto'); } else { this.setState({defaultClient: true}); this._services.registerForURLScheme('mailto'); } event.target.blur(); } render() { if (process.platform !== "darwin") return false; return (
); } } class LaunchSystemStartItem extends React.Component { constructor() { super(); this.state = { available: false, launchOnStart: false, }; this._service = new SystemStartService(); } componentDidMount() { this._mounted = true; this._service.checkAvailability().then((available) => { if (this._mounted) { this.setState({available}); } if (!available || !this._mounted) return; this._service.doesLaunchOnSystemStart().then((launchOnStart) => { if (this._mounted) { this.setState({launchOnStart}); } }); }); } componentWillUnmount() { this._mounted = false; } _toggleLaunchOnStart = (event) => { if (this.state.launchOnStart) { this.setState({launchOnStart: false}); this._service.dontLaunchOnSystemStart(); } else { this.setState({launchOnStart: true}); this._service.configureToLaunchOnSystemStart(); } event.target.blur(); } render() { if (!this.state.available) return false; return (
); } } class WorkspaceSection extends React.Component { static displayName = 'WorkspaceSection'; static propTypes = { config: React.PropTypes.object, configSchema: React.PropTypes.object, } render() { return (
); } } export default WorkspaceSection;