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 (
); }, renderStep: function () { return (
{this.renderContents()}

Step {SetupStore.number()} out of {SetupStore.stepCount()}

{SetupStore.step().title}

{SetupStore.step().message}

); }, renderCancelled: function () { return (
{this.renderContents()}

Setup Cancelled

Couldn't Install Requirements

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.

); }, renderError: function () { return (

Setup Error

We're Sorry!

There seems to have been an unexpected error with Kitematic:

{this.state.error.message || this.state.error}

); }, render: function () { if (this.state.cancelled) { return this.renderCancelled(); } else if (this.state.error) { return this.renderError(); } else if (SetupStore.step()) { return this.renderStep(); } else { return false; } } }); module.exports = Setup;