fix BrowserStore bug in actionOnItemsWithPrefix and refactor BrowserStore

Этот коммит содержится в:
ralder
2015-07-09 03:32:03 -07:00
родитель 5bb2acc996
Коммит 6a559febc2
11 изменённых файлов: 153 добавлений и 313 удалений

Просмотреть файл

@@ -56,13 +56,13 @@ module.exports = React.createClass({
$(this.refs.modal.getDOMNode()).on('show.bs.modal', function(e) {
var newState = {};
if(BrowserStore.getItem('edit_state_transfer')) {
newState = JSON.parse(BrowserStore.getItem('edit_state_transfer'));
newState = BrowserStore.getItem('edit_state_transfer');
BrowserStore.removeItem('edit_state_transfer');
} else {
var button = e.relatedTarget;
newState = { title: $(button).attr('data-title'), channel_id: $(button).attr('data-channelid'), post_id: $(button).attr('data-postid'), comments: $(button).attr('data-comments') };
}
self.setState(newState)
self.setState(newState);
});
PostStore.addSelectedPostChangeListener(this._onChange);
},

Просмотреть файл

@@ -4,6 +4,7 @@
var Client = require('../utils/client.jsx');
var AsyncClient = require('../utils/async_client.jsx');
var Textbox = require('./textbox.jsx');
var BrowserStore = require('../stores/browser_store.jsx');
module.exports = React.createClass({
handleEdit: function(e) {
@@ -13,14 +14,14 @@ module.exports = React.createClass({
if (updatedPost.message.length === 0) {
var tempState = this.state;
delete tempState.editText;
BrowserStore.setItem('edit_state_transfer', JSON.stringify(tempState));
BrowserStore.setItem('edit_state_transfer', tempState);
$("#edit_post").modal('hide');
$("#delete_post").modal('show');
return;
}
updatedPost.id = this.state.post_id
updatedPost.channel_id = this.state.channel_id
updatedPost.id = this.state.post_id;
updatedPost.channel_id = this.state.channel_id;
Client.updatePost(updatedPost,
function(data) {

Просмотреть файл

@@ -596,19 +596,14 @@ PasswordPage = React.createClass({
module.exports = React.createClass({
updateParent: function(state, skipSet) {
BrowserStore.setGlobalItem(this.props.hash, JSON.stringify(state));
BrowserStore.setGlobalItem(this.props.hash, state);
if (!skipSet) {
this.setState(state);
}
},
getInitialState: function() {
var props = null;
try {
props = JSON.parse(BrowserStore.getGlobalItem(this.props.hash));
}
catch(parse_error) {
}
var props = BrowserStore.getGlobalItem(this.props.hash);
if (!props) {
props = {};
@@ -628,7 +623,7 @@ module.exports = React.createClass({
props.data = this.props.data;
}
return props ;
return props;
},
render: function() {
if (this.state.wizard == "welcome") {

Просмотреть файл

@@ -17,7 +17,7 @@ module.exports = React.createClass({
return;
}
var username_error = utils.isValidUsername(this.state.user.username)
var username_error = utils.isValidUsername(this.state.user.username);
if (username_error === "Cannot use a reserved word as a username.") {
this.setState({name_error: "This username is reserved, please choose a new one.", email_error: "", password_error: "", server_error: ""});
return;
@@ -53,7 +53,7 @@ module.exports = React.createClass({
UserStore.setLastEmail(this.state.user.email);
UserStore.setCurrentUser(data);
if (this.props.hash > 0)
BrowserStore.setGlobalItem(this.props.hash, JSON.stringify({wizard: "finished"}));
BrowserStore.setGlobalItem(this.props.hash, {wizard: "finished"});
window.location.href = '/channels/town-square';
}.bind(this),
function(err) {
@@ -73,12 +73,7 @@ module.exports = React.createClass({
);
},
getInitialState: function() {
var props = null;
try {
props = JSON.parse(BrowserStore.getGlobalItem(this.props.hash));
}
catch(parse_error) {
}
var props = BrowserStore.getGlobalItem(this.props.hash);
if (!props) {
props = {};
@@ -91,7 +86,7 @@ module.exports = React.createClass({
props.original_email = this.props.email;
}
return props ;
return props;
},
render: function() {