revert handling scores using store instead of comment state due to UI freezes

This commit is contained in:
igoradamenko
2018-05-26 17:04:36 +03:00
parent a56d2cfed8
commit d7a22620df
+11 -6
View File
@@ -46,6 +46,7 @@ export default class Comment extends Component {
const { data, data: { user: { block, id: commentUserId }, pin }, mods: { guest } = {} } = props;
const votes = data && data.votes || [];
const score = data && data.score || 0;
if (this.editTimerInterval) {
clearInterval(this.editTimerInterval);
@@ -55,6 +56,7 @@ export default class Comment extends Component {
if (guest) {
this.setState({
guest,
score,
deleted: data ? data.delete : false,
});
} else {
@@ -62,6 +64,7 @@ export default class Comment extends Component {
this.setState({
guest,
score,
pinned: !!pin,
deleted: data ? data.delete : false,
userBlocked: !!block,
@@ -185,8 +188,8 @@ export default class Comment extends Component {
}
increaseScore() {
const { scoreIncreased, scoreDecreased } = this.state;
const { id, score } = this.props.data;
const { score, scoreIncreased, scoreDecreased } = this.state;
const { id } = this.props.data;
if (scoreIncreased) return;
@@ -195,6 +198,7 @@ export default class Comment extends Component {
this.setState({
scoreIncreased: !scoreDecreased,
scoreDecreased: false,
score: newScore,
});
store.replaceComment(Object.assign({}, this.props.data, { score: newScore }));
@@ -203,8 +207,8 @@ export default class Comment extends Component {
}
decreaseScore() {
const { scoreIncreased, scoreDecreased } = this.state;
const { id, score } = this.props.data;
const { score, scoreIncreased, scoreDecreased } = this.state;
const { id } = this.props.data;
if (scoreDecreased) return;
@@ -213,6 +217,7 @@ export default class Comment extends Component {
this.setState({
scoreDecreased: !scoreIncreased,
scoreIncreased: false,
score: newScore,
});
store.replaceComment(Object.assign({}, this.props.data, { score: newScore }));
@@ -254,8 +259,8 @@ export default class Comment extends Component {
}
}
render(props, { guest, isUserIdVisible, userBlocked, pinned, scoreIncreased, scoreDecreased, deleted, isReplying, isEditing, editTimeLeft }) {
const { data, data: { score }, mods = {} } = props;
render(props, { guest, isUserIdVisible, userBlocked, pinned, score, scoreIncreased, scoreDecreased, deleted, isReplying, isEditing, editTimeLeft }) {
const { data, mods = {} } = props;
const isAdmin = !guest && store.get('user').admin;
const isGuest = guest || !Object.keys(store.get('user')).length;
const isCurrentUser = (data.user && data.user.id) === (store.get('user') && store.get('user').id);