var React = require('react/addons'); var Router = require('react-router'); var Radial = require('./Radial.react.js'); var SetupStore = require('./SetupStore'); var RetinaImage = require('react-retina-image'); var Header = require('./Header.react'); var Util = require('./Util'); var metrics = require('./Metrics'); var machine = require('./DockerMachine'); var Setup = React.createClass({ mixins: [ Router.Navigation ], getInitialState: function () { return { progress: 0, name: '', retrying: false }; }, componentWillMount: function () { SetupStore.on(SetupStore.PROGRESS_EVENT, this.update); SetupStore.on(SetupStore.STEP_EVENT, this.update); SetupStore.on(SetupStore.ERROR_EVENT, this.update); }, componentDidMount: function () { this.update(); }, componentDidUnmount: function () { SetupStore.removeListener(SetupStore.PROGRESS_EVENT, this.update); SetupStore.removeListener(SetupStore.STEP_EVENT, this.update); SetupStore.removeListener(SetupStore.ERROR_EVENT, this.update); }, handleCancelRetry: function () { metrics.track('Setup Retried', { from: 'cancel' }); SetupStore.retry(); }, handleErrorRetry: function () { this.setState({ retrying: true }); metrics.track('Setup Retried', { from: 'error' }); machine.stop().finally(() => { this.setState({ retrying: false }); SetupStore.retry(); }); }, handleOpenWebsite: function () { Util.exec(['open', 'https://www.virtualbox.org/wiki/Downloads']); }, update: function () { this.setState({ progress: SetupStore.percent(), step: SetupStore.step(), error: SetupStore.error(), cancelled: SetupStore.cancelled() }); }, renderContents: function () { var img = 'virtualbox.png'; if (SetupStore.step().name === 'init' || SetupStore.step().name === 'start') { img = 'boot2docker.png'; } return (
{SetupStore.step().message}
Kitematic didn't receive the administrative privileges required to install or upgrade VirtualBox & Docker.
Please click retry. If VirtualBox is not installed, you can download & install it manually from the official Oracle website.
There seems to have been an unexpected error with Kitematic:
{this.state.error.message || this.state.error}