From f56dd1010605137b1c471a718f09c2451d9ade4f Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Thu, 16 Jul 2015 01:34:40 +0900 Subject: [PATCH] refactor modal & setup ordering for snippet --- browser/main/Components/LaunchModal.jsx | 236 ++++++++++++------ browser/main/Containers/PlanetContainer.jsx | 37 ++- .../main/Containers/UserSettingContainer.jsx | 1 - browser/main/Stores/PlanetStore.js | 28 ++- browser/main/index.html | 34 +++ browser/styles/shared/modal.styl | 15 +- 6 files changed, 252 insertions(+), 99 deletions(-) diff --git a/browser/main/Components/LaunchModal.jsx b/browser/main/Components/LaunchModal.jsx index a17baa17..e8aebfee 100644 --- a/browser/main/Components/LaunchModal.jsx +++ b/browser/main/Components/LaunchModal.jsx @@ -1,19 +1,22 @@ 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 PlanetActions = require('../Actions/PlanetActions') +var PlanetStore = require('../Stores/PlanetStore') + // TODO: remove var options = [ { value: 'one', label: 'One' }, { value: 'two', label: 'Two' } ] -var LaunchModal = React.createClass({ - mixins: [Catalyst.LinkedStateMixin], +var SnippetForm = React.createClass({ + mixins: [Catalyst.LinkedStateMixin, ReactRouter.State], propTypes: { - submit: React.PropTypes.func, close: React.PropTypes.func }, getInitialState: function () { @@ -23,28 +26,13 @@ var LaunchModal = React.createClass({ mode: 'javascript', content: '', callSign: '', - tags: [] - }, - blueprint: { - title: '', - content: '', - tags: [] - }, - currentTab: 'snippet' + Tags: [] + } } }, - handleClick: function (e) { - e.stopPropagation() - }, - selectSnippetTab: function () { - this.setState({currentTab: 'snippet'}) - }, - selectBlueprintTab: function () { - this.setState({currentTab: 'blueprint'}) - }, handleSnippetTagsChange: function (selected, all) { var snippet = this.state.snippet - snippet.tags = all + snippet.Tags = all this.setState({snippet: snippet}) }, handleSnippetContentChange: function (e, value) { @@ -52,31 +40,22 @@ var LaunchModal = React.createClass({ snippet.content = value this.setState({snippet: snippet}) }, - handleBlueprintTagsChange: function (selected, all) { - var blueprint = this.state.blueprint - blueprint.tags = all - this.setState({blueprint: blueprint}) - }, - handleBlueprintContentChange: function (e, value) { - var blueprint = this.state.blueprint - blueprint.content = value - this.setState({blueprint: blueprint}) - }, submit: function () { - // this.props.submit('yolo') - if (this.state.currentTab === 'snippet') { - console.log(this.state.snippet) - } else { - console.log(this.state.blueprint) - } + var params = this.getParams() + var userName = params.userName + var planetName = params.planetName + var snippet = Object.assign({}, this.state.snippet) + snippet.Tags = snippet.Tags.map(function (tag) { + return tag.value + }) + PlanetActions.createSnippet(userName + '/' + planetName, snippet) }, render: function () { - var form - if (this.state.currentTab === 'snippet') { - form = ( -
+ return ( +
+
-