From 23b8b49c002e754997c61564d72a52e53f174540 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Mon, 17 Aug 2015 01:10:08 +0900 Subject: [PATCH] on Refactoring... --- browser/finder/index.jsx | 2 +- browser/main/Actions/AuthActions.js | 9 - browser/main/Actions/PlanetActions.js | 19 - .../main/Components/BlueprintEditModal.jsx | 25 - ...petDeleteModal.jsx => CodeDeleteModal.jsx} | 34 +- browser/main/Components/CodeEditModal.jsx | 20 + browser/main/Components/CodeEditor.jsx | 5 +- .../{SnippetForm.jsx => CodeForm.jsx} | 116 +-- browser/main/Components/CodeViewer.jsx | 5 +- browser/main/Components/EditProfileModal.jsx | 167 ++++ browser/main/Components/HomeNavigator.jsx | 154 ++++ browser/main/Components/LaunchModal.jsx | 40 +- browser/main/Components/ModalBase.jsx | 23 - browser/main/Components/ModeSelect.jsx | 7 - ...intDeleteModal.jsx => NoteDeleteModal.jsx} | 36 +- browser/main/Components/NoteEditModal.jsx | 21 + .../{BlueprintForm.jsx => NoteForm.jsx} | 118 +-- .../main/Components/PlanetArticleDetail.jsx | 49 +- browser/main/Components/PlanetArticleList.jsx | 51 +- browser/main/Components/PlanetCreateModal.jsx | 79 +- browser/main/Components/PlanetHeader.jsx | 37 +- browser/main/Components/PlanetNavigator.jsx | 54 +- .../main/Components/PlanetSettingModal.jsx | 107 +-- ...lSettingModal.jsx => PreferencesModal.jsx} | 26 +- browser/main/Components/SnippetEditModal.jsx | 24 - browser/main/Components/UserNavigator.jsx | 89 --- .../main/Containers/DashboardContainer.jsx | 52 -- browser/main/Containers/HomeContainer.jsx | 29 + browser/main/Containers/LoginContainer.jsx | 52 +- browser/main/Containers/MainContainer.jsx | 120 ++- browser/main/Containers/PlanetContainer.jsx | 721 ++++++------------ ...isterContainer.jsx => SignupContainer.jsx} | 133 ++-- browser/main/Containers/UserContainer.jsx | 160 ++-- .../main/Containers/UserSettingContainer.jsx | 173 ----- browser/main/Mixins/ArticleFilter.js | 67 ++ browser/main/Mixins/AuthFilter.js | 27 + browser/main/Mixins/Catalyst.js | 38 - browser/main/Mixins/LinkedState.js | 31 + browser/main/Mixins/Modal.jsx | 42 + browser/main/Mixins/OnlyGuest.js | 20 - browser/main/Services/Hq.js | 112 +++ browser/main/Stores/AuthStore.js | 11 +- browser/main/Stores/PlanetStore.js | 427 +++-------- browser/main/Stores/UserStore.js | 23 + browser/main/index.electron.html | 8 +- browser/main/index.jsx | 32 +- .../main/containers/LoginContainer.styl | 5 +- .../main/containers/PlanetContainer.styl | 113 ++- .../styles/main/containers/UserContainer.styl | 141 +++- browser/styles/main/index.styl | 13 +- browser/styles/mixins/alert.styl | 7 - browser/styles/mixins/btn.styl | 13 + browser/styles/mixins/input.styl | 9 +- browser/styles/mixins/marked.styl | 12 +- browser/styles/shared/modal.styl | 185 +++-- browser/styles/vars.styl | 8 +- config.js | 4 +- main.js | 21 +- package.json | 13 +- 59 files changed, 1960 insertions(+), 2179 deletions(-) delete mode 100644 browser/main/Actions/AuthActions.js delete mode 100644 browser/main/Actions/PlanetActions.js delete mode 100644 browser/main/Components/BlueprintEditModal.jsx rename browser/main/Components/{SnippetDeleteModal.jsx => CodeDeleteModal.jsx} (54%) create mode 100644 browser/main/Components/CodeEditModal.jsx rename browser/main/Components/{SnippetForm.jsx => CodeForm.jsx} (51%) create mode 100644 browser/main/Components/EditProfileModal.jsx create mode 100644 browser/main/Components/HomeNavigator.jsx delete mode 100644 browser/main/Components/ModalBase.jsx delete mode 100644 browser/main/Components/ModeSelect.jsx rename browser/main/Components/{BlueprintDeleteModal.jsx => NoteDeleteModal.jsx} (51%) create mode 100644 browser/main/Components/NoteEditModal.jsx rename browser/main/Components/{BlueprintForm.jsx => NoteForm.jsx} (50%) rename browser/main/Components/{PersonalSettingModal.jsx => PreferencesModal.jsx} (93%) delete mode 100644 browser/main/Components/SnippetEditModal.jsx delete mode 100644 browser/main/Components/UserNavigator.jsx delete mode 100644 browser/main/Containers/DashboardContainer.jsx create mode 100644 browser/main/Containers/HomeContainer.jsx rename browser/main/Containers/{RegisterContainer.jsx => SignupContainer.jsx} (55%) delete mode 100644 browser/main/Containers/UserSettingContainer.jsx create mode 100644 browser/main/Mixins/ArticleFilter.js create mode 100644 browser/main/Mixins/AuthFilter.js delete mode 100644 browser/main/Mixins/Catalyst.js create mode 100644 browser/main/Mixins/LinkedState.js create mode 100644 browser/main/Mixins/Modal.jsx delete mode 100644 browser/main/Mixins/OnlyGuest.js create mode 100644 browser/main/Services/Hq.js create mode 100644 browser/main/Stores/UserStore.js diff --git a/browser/finder/index.jsx b/browser/finder/index.jsx index 2a76d444..24a4b9c9 100644 --- a/browser/finder/index.jsx +++ b/browser/finder/index.jsx @@ -81,7 +81,7 @@ function searchArticle (search, articles) { // Filter end function fetchArticles () { - var user = JSON.parse(localStorage.getItem('user')) + var user = JSON.parse(localStorage.getItem('currentUser')) if (user == null) { console.log('need to login') return [] diff --git a/browser/main/Actions/AuthActions.js b/browser/main/Actions/AuthActions.js deleted file mode 100644 index 6867b87c..00000000 --- a/browser/main/Actions/AuthActions.js +++ /dev/null @@ -1,9 +0,0 @@ -var Reflux = require('reflux') - -module.exports = Reflux.createActions([ - 'login', - 'register', - 'logout', - 'updateProfile', - 'refreshUser' -]) diff --git a/browser/main/Actions/PlanetActions.js b/browser/main/Actions/PlanetActions.js deleted file mode 100644 index 21ec67e5..00000000 --- a/browser/main/Actions/PlanetActions.js +++ /dev/null @@ -1,19 +0,0 @@ -var Reflux = require('reflux') - -module.exports = Reflux.createActions([ - 'createPlanet', - 'fetchPlanet', - 'deletePlanet', - - 'changeName', - 'addUser', - 'removeUser', - - 'createSnippet', - 'updateSnippet', - 'deleteSnippet', - - 'createBlueprint', - 'updateBlueprint', - 'deleteBlueprint' -]) diff --git a/browser/main/Components/BlueprintEditModal.jsx b/browser/main/Components/BlueprintEditModal.jsx deleted file mode 100644 index f8aee2b6..00000000 --- a/browser/main/Components/BlueprintEditModal.jsx +++ /dev/null @@ -1,25 +0,0 @@ -var React = require('react') - -var BlueprintForm = require('./BlueprintForm') - -var BlueprintEditModal = React.createClass({ - propTypes: { - close: React.PropTypes.func, - blueprint: React.PropTypes.object - }, - stopPropagation: function (e) { - e.stopPropagation() - }, - render: function () { - return ( -
-
-

Edit Blueprint

-
- -
- ) - } -}) - -module.exports = BlueprintEditModal diff --git a/browser/main/Components/SnippetDeleteModal.jsx b/browser/main/Components/CodeDeleteModal.jsx similarity index 54% rename from browser/main/Components/SnippetDeleteModal.jsx rename to browser/main/Components/CodeDeleteModal.jsx index 8f389632..dd9503bf 100644 --- a/browser/main/Components/SnippetDeleteModal.jsx +++ b/browser/main/Components/CodeDeleteModal.jsx @@ -1,11 +1,14 @@ var React = require('react') -var PlanetActions = require('../Actions/PlanetActions') +var Hq = require('../Services/Hq') -var SnippetDeleteModal = React.createClass({ +var PlanetStore = require('../Stores/PlanetStore') + +module.exports = React.createClass({ propTypes: { - close: React.PropTypes.func, - snippet: React.PropTypes.object + planet: React.PropTypes.object, + code: React.PropTypes.object, + close: React.PropTypes.func }, componentDidMount: function () { React.findDOMNode(this).focus() @@ -13,21 +16,22 @@ var SnippetDeleteModal = React.createClass({ stopPropagation: function (e) { e.stopPropagation() }, - handleKeyDown: function (e) { - console.log(e) - if (e.keyCode === 13 && e.metaKey) { - e.preventDefault() - this.submit() - } - }, submit: function () { - PlanetActions.deleteSnippet(this.props.snippet.id) + var planet = this.props.planet + Hq.destroyCode(planet.userName, planet.name, this.props.code.localId) + .then(function (res) { + PlanetStore.Actions.destroyCode(res.body) + this.props.close() + }.bind(this)) + .catch(function (err) { + console.error(err) + }) }, render: function () { return ( -
+
-

Delete Snippet

+

Delete Code

Are you sure to delete it?

@@ -42,5 +46,3 @@ var SnippetDeleteModal = React.createClass({ ) } }) - -module.exports = SnippetDeleteModal diff --git a/browser/main/Components/CodeEditModal.jsx b/browser/main/Components/CodeEditModal.jsx new file mode 100644 index 00000000..8877cafa --- /dev/null +++ b/browser/main/Components/CodeEditModal.jsx @@ -0,0 +1,20 @@ +var React = require('react') +var CodeForm = require('./CodeForm') + +module.exports = React.createClass({ + propTypes: { + close: React.PropTypes.func, + code: React.PropTypes.object, + planet: React.PropTypes.object + }, + render: function () { + return ( +
+
+

Edit Code

+
+ +
+ ) + } +}) diff --git a/browser/main/Components/CodeEditor.jsx b/browser/main/Components/CodeEditor.jsx index 60512e52..0769de75 100644 --- a/browser/main/Components/CodeEditor.jsx +++ b/browser/main/Components/CodeEditor.jsx @@ -1,7 +1,8 @@ var React = require('react/addons') var ace = window.ace -var CodeEditor = React.createClass({ + +module.exports = React.createClass({ propTypes: { code: React.PropTypes.string, mode: React.PropTypes.string, @@ -48,5 +49,3 @@ var CodeEditor = React.createClass({ ) } }) - -module.exports = CodeEditor diff --git a/browser/main/Components/SnippetForm.jsx b/browser/main/Components/CodeForm.jsx similarity index 51% rename from browser/main/Components/SnippetForm.jsx rename to browser/main/Components/CodeForm.jsx index 2722b07f..e80dc6af 100644 --- a/browser/main/Components/SnippetForm.jsx +++ b/browser/main/Components/CodeForm.jsx @@ -1,96 +1,99 @@ var React = require('react/addons') -var ReactRouter = require('react-router') var CodeEditor = require('./CodeEditor') -var Catalyst = require('../Mixins/Catalyst') var Select = require('react-select') -var request = require('superagent') -var PlanetActions = require('../Actions/PlanetActions') -var apiUrl = require('../../../config').apiUrl +var Hq = require('../Services/Hq') + +var LinkedState = require('../Mixins/LinkedState') + +var PlanetStore = require('../Stores/PlanetStore') var aceModes = require('../../../modules/ace-modes') var getOptions = function (input, callback) { - request - .get(apiUrl + 'tags/search') - .query({name: input}) - .send() - .end(function (err, res) { - if (err) { - callback(err) - return - } + Hq.searchTag(input) + .then(function (res) { callback(null, { options: res.body.map(function (tag) { return { label: tag.name, value: tag.name } - }), + }), complete: false - }) + }) + }) + .catch(function (err) { + console.log(err) }) } -var SnippetForm = React.createClass({ - mixins: [Catalyst.LinkedStateMixin, ReactRouter.State], +module.exports = React.createClass({ + mixins: [LinkedState], propTypes: { + planet: React.PropTypes.object, close: React.PropTypes.func, - snippet: React.PropTypes.object + transitionTo: React.PropTypes.func, + code: React.PropTypes.object }, getInitialState: function () { - var snippet = Object.assign({ + var code = Object.assign({ description: '', mode: '', content: '', - callSign: '', Tags: [] - }, this.props.snippet) - snippet.Tags = snippet.Tags.map(function (tag) { + }, this.props.code) + + code.Tags = code.Tags.map(function (tag) { return { label: tag.name, value: tag.name } }) + return { - snippet: snippet + code: code } }, - componentDidMount: function () { - React.findDOMNode(this.refs.description).focus() - }, handleModeChange: function (selected) { - var snippet = this.state.snippet - snippet.mode = selected - console.log(selected, 'selected') - this.setState({snippet: snippet}) + var code = this.state.code + code.mode = selected + this.setState({code: code}) }, handleTagsChange: function (selected, all) { - var snippet = this.state.snippet - snippet.Tags = all - this.setState({snippet: snippet}) + var code = this.state.code + code.Tags = all + this.setState({code: code}) }, handleContentChange: function (e, value) { - var snippet = this.state.snippet - snippet.content = value - this.setState({snippet: snippet}) + var code = this.state.code + code.content = value + this.setState({code: code}) }, submit: function () { - var snippet = Object.assign({}, this.state.snippet) - snippet.Tags = snippet.Tags.map(function (tag) { + var planet = this.props.planet + var code = this.state.code + code.Tags = code.Tags.map(function (tag) { return tag.value }) - if (this.props.snippet == null) { - var params = this.getParams() - var userName = params.userName - var planetName = params.planetName - - PlanetActions.createSnippet(userName + '/' + planetName, snippet) + if (this.props.code == null) { + Hq.createCode(planet.userName, planet.name, this.state.code) + .then(function (res) { + var code = res.body + PlanetStore.Actions.updateCode(code) + this.props.close() + this.props.transitionTo('codes', {userName: planet.userName, planetName: planet.name, localId: code.localId}) + }.bind(this)) + .catch(function (err) { + console.error(err) + }) } else { - var snippetId = snippet.id - delete snippet.id - - PlanetActions.updateSnippet(snippetId, snippet) + Hq.updateCode(planet.userName, planet.name, this.props.code.localId, this.state.code) + .then(function (res) { + var code = res.body + PlanetStore.Actions.updateCode(code) + this.props.close() + }.bind(this)) } }, handleKeyDown: function (e) { @@ -107,30 +110,29 @@ var SnippetForm = React.createClass({ } }) return ( -
+
-