From d0f2d74425b3037bb4d1313c5d96f697d8609bcf Mon Sep 17 00:00:00 2001
From: Yuya Ochiai
Date: Mon, 31 Oct 2016 00:40:34 +0900
Subject: [PATCH 1/6] Divide index.jsx into components
---
src/browser/components/ErrorView.jsx | 95 +++
.../{loginModal.jsx => LoginModal.jsx} | 28 +-
src/browser/components/MainPage.jsx | 276 ++++++++
src/browser/components/MattermostView.jsx | 231 +++++++
src/browser/components/TabBar.jsx | 90 +++
src/browser/index.jsx | 648 +-----------------
6 files changed, 710 insertions(+), 658 deletions(-)
create mode 100644 src/browser/components/ErrorView.jsx
rename src/browser/components/{loginModal.jsx => LoginModal.jsx} (84%)
create mode 100644 src/browser/components/MainPage.jsx
create mode 100644 src/browser/components/MattermostView.jsx
create mode 100644 src/browser/components/TabBar.jsx
diff --git a/src/browser/components/ErrorView.jsx b/src/browser/components/ErrorView.jsx
new file mode 100644
index 00000000..b1061e3a
--- /dev/null
+++ b/src/browser/components/ErrorView.jsx
@@ -0,0 +1,95 @@
+// ErrorCode: https://code.google.com/p/chromium/codesearch#chromium/src/net/base/net_error_list.h
+
+const React = require('react');
+const {Grid, Row, Col} = require('react-bootstrap');
+
+const errorPage = {
+ tableStyle: {
+ display: 'table',
+ width: '100%',
+ height: '100%',
+ position: 'absolute',
+ top: '0',
+ left: '0'
+ },
+
+ cellStyle: {
+ display: 'table-cell',
+ verticalAlign: 'top',
+ paddingTop: '2em'
+ },
+
+ bullets: {
+ paddingLeft: '15px',
+ lineHeight: '1.7'
+ },
+
+ techInfo: {
+ fontSize: '12px',
+ color: '#aaa'
+ }
+};
+
+class ErrorView extends React.Component {
+ render() {
+ return (
+
+
+
+
+
+
+ {'Cannot connect to Mattermost'}
+
+ {'We\'re having trouble connecting to Mattermost. If refreshing this page (Ctrl+R or Command+R) does not work please verify that:'}
+
+
+
+
+ {this.props.errorInfo.errorDescription}{' ('}
+ {this.props.errorInfo.errorCode }{')'}
+
+
+
+
+
+
+ );
+ }
+}
+
+ErrorView.propTypes = {
+ errorInfo: React.PropTypes.object,
+ id: React.PropTypes.number,
+ style: React.PropTypes.object
+};
+
+module.exports = ErrorView;
diff --git a/src/browser/components/loginModal.jsx b/src/browser/components/LoginModal.jsx
similarity index 84%
rename from src/browser/components/loginModal.jsx
rename to src/browser/components/LoginModal.jsx
index 50c48e04..54131077 100644
--- a/src/browser/components/loginModal.jsx
+++ b/src/browser/components/LoginModal.jsx
@@ -1,16 +1,8 @@
const React = require('react');
const ReactDOM = require('react-dom');
-const ReactBootstrap = require('react-bootstrap');
-const Modal = ReactBootstrap.Modal;
-const Form = ReactBootstrap.Form;
-const FormGroup = ReactBootstrap.FormGroup;
-const FormControl = ReactBootstrap.FormControl;
-const ControlLabel = ReactBootstrap.ControlLabel;
-const Col = ReactBootstrap.Col;
+const {Button, Col, ControlLabel, Form, FormGroup, FormControl, Modal} = require('react-bootstrap');
-const Button = ReactBootstrap.Button;
-
-const LoginModal = React.createClass({
+class LoginModal extends React.Component {
handleSubmit(event) {
event.preventDefault();
const usernameNode = ReactDOM.findDOMNode(this.refs.username);
@@ -18,7 +10,8 @@ const LoginModal = React.createClass({
this.props.onLogin(this.props.request, usernameNode.value, passwordNode.value);
usernameNode.value = '';
passwordNode.value = '';
- },
+ }
+
render() {
var theServer = '';
if (!this.props.show) {
@@ -39,7 +32,7 @@ const LoginModal = React.createClass({
{ message }