mirror of
https://github.com/ecency/ecency-mobile.git
synced 2024-12-20 03:42:10 +03:00
calculating up and down votes with async
This commit is contained in:
parent
a46a75dfaa
commit
c869587b6e
@ -1,4 +1,4 @@
|
|||||||
import React, { PureComponent } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import get from 'lodash/get';
|
import get from 'lodash/get';
|
||||||
|
|
||||||
@ -22,17 +22,35 @@ import UpvoteView from '../view/upvoteView';
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class UpvoteContainer extends PureComponent {
|
const UpvoteContainer = (props) => {
|
||||||
constructor(props) {
|
const {
|
||||||
super(props);
|
content,
|
||||||
this.state = {};
|
currentAccount,
|
||||||
|
fetchPost,
|
||||||
|
isLoggedIn,
|
||||||
|
isShowPayoutValue,
|
||||||
|
pinCode,
|
||||||
|
upvotePercent,
|
||||||
|
globalProps,
|
||||||
|
activeVotes = [],
|
||||||
|
} = props;
|
||||||
|
|
||||||
|
const [isVoted, setIsVoted] = useState(null);
|
||||||
|
const [isDownVoted, setIsDownVoted] = useState(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
_calculateVoteStatus()
|
||||||
|
}, [activeVotes])
|
||||||
|
|
||||||
|
const _calculateVoteStatus = async () => {
|
||||||
|
const _isVoted = await isVotedFunc(activeVotes, get(currentAccount, 'name'));
|
||||||
|
const _isDownVoted = await isDownVotedFunc(activeVotes, get(currentAccount, 'name'));
|
||||||
|
|
||||||
|
setIsVoted(_isVoted && parseInt(_isVoted, 10) / 10000)
|
||||||
|
setIsDownVoted(_isDownVoted && (parseInt(_isDownVoted, 10) / 10000) * -1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Component Life Cycle Functions
|
const _setUpvotePercent = (value) => {
|
||||||
|
|
||||||
// Component Functions
|
|
||||||
|
|
||||||
_setUpvotePercent = (value) => {
|
|
||||||
const { dispatch } = this.props;
|
const { dispatch } = this.props;
|
||||||
|
|
||||||
if (value) {
|
if (value) {
|
||||||
@ -41,26 +59,8 @@ class UpvoteContainer extends PureComponent {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
|
||||||
const {
|
|
||||||
content,
|
|
||||||
currentAccount,
|
|
||||||
fetchPost,
|
|
||||||
isLoggedIn,
|
|
||||||
isShowPayoutValue,
|
|
||||||
pinCode,
|
|
||||||
upvotePercent,
|
|
||||||
globalProps,
|
|
||||||
activeVotes = [],
|
|
||||||
} = this.props;
|
|
||||||
|
|
||||||
const _isVoted = isVotedFunc(activeVotes, get(currentAccount, 'name'));
|
|
||||||
const _isDownVoted = isDownVotedFunc(activeVotes, get(currentAccount, 'name'));
|
|
||||||
|
|
||||||
const author = get(content, 'author');
|
const author = get(content, 'author');
|
||||||
const isVoted = _isVoted && parseInt(_isVoted, 10) / 10000;
|
|
||||||
const isDownVoted = _isDownVoted && (parseInt(_isDownVoted, 10) / 10000) * -1;
|
|
||||||
|
|
||||||
const totalPayout = get(content, 'total_payout');
|
const totalPayout = get(content, 'total_payout');
|
||||||
const isDecinedPayout = get(content, 'is_declined_payout');
|
const isDecinedPayout = get(content, 'is_declined_payout');
|
||||||
const permlink = get(content, 'permlink');
|
const permlink = get(content, 'permlink');
|
||||||
@ -113,7 +113,7 @@ class UpvoteContainer extends PureComponent {
|
|||||||
currentAccount={currentAccount}
|
currentAccount={currentAccount}
|
||||||
fetchPost={fetchPost}
|
fetchPost={fetchPost}
|
||||||
globalProps={globalProps}
|
globalProps={globalProps}
|
||||||
handleSetUpvotePercent={this._setUpvotePercent}
|
handleSetUpvotePercent={_setUpvotePercent}
|
||||||
isDecinedPayout={isDecinedPayout}
|
isDecinedPayout={isDecinedPayout}
|
||||||
isLoggedIn={isLoggedIn}
|
isLoggedIn={isLoggedIn}
|
||||||
isShowPayoutValue={isShowPayoutValue}
|
isShowPayoutValue={isShowPayoutValue}
|
||||||
@ -131,9 +131,14 @@ class UpvoteContainer extends PureComponent {
|
|||||||
breakdownPayout={breakdownPayout}
|
breakdownPayout={breakdownPayout}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Component Life Cycle Functions
|
||||||
|
|
||||||
|
// Component Functions
|
||||||
|
|
||||||
const mapStateToProps = (state) => ({
|
const mapStateToProps = (state) => ({
|
||||||
isLoggedIn: state.application.isLoggedIn,
|
isLoggedIn: state.application.isLoggedIn,
|
||||||
upvotePercent: state.application.upvotePercent,
|
upvotePercent: state.application.upvotePercent,
|
||||||
|
@ -72,7 +72,8 @@ export const parseComments = async (comments) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const isVoted = (activeVotes, currentUserName) => {
|
|
||||||
|
export const isVoted = async (activeVotes, currentUserName) => {
|
||||||
if (!currentUserName) {
|
if (!currentUserName) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -85,7 +86,7 @@ export const isVoted = (activeVotes, currentUserName) => {
|
|||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const isDownVoted = (activeVotes, currentUserName) => {
|
export const isDownVoted = async (activeVotes, currentUserName) => {
|
||||||
if (!currentUserName) {
|
if (!currentUserName) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user