diff --git a/webapp/src/routes/BlockProducers/BlockProducerProfile.js b/webapp/src/routes/BlockProducers/BlockProducerProfile.js index cb7734e4..d8b630d0 100644 --- a/webapp/src/routes/BlockProducers/BlockProducerProfile.js +++ b/webapp/src/routes/BlockProducers/BlockProducerProfile.js @@ -115,7 +115,9 @@ const BlockProducerProfile = () => { bpRated = rate } }) + setMyRating(bpRated?.ratings) + const userDataSet = getBPRadarData({ colorString: 'myRate', name: t('myRate'), @@ -168,6 +170,12 @@ const BlockProducerProfile = () => { ({ owner }) => owner === account ) + if (!bp) { + await setProducer(account) + + return + } + setProducer(bp, true) setProfileData(bp) @@ -181,7 +189,7 @@ const BlockProducerProfile = () => { }, [account]) useEffect(() => { - if (!state.blockProducer || !state.user) return + if (!state.blockProducer) return setProfileData(state?.blockProducer) }, [state.blockProducer, state.user]) @@ -301,8 +309,14 @@ const BlockProducerProfile = () => { rows={[ { rater: t('myRate'), - amount: 1, - average: getMyRatingAverage(myRating) + amount: isRated ? 1 : 0, + average: getMyRatingAverage({ + community: myRating?.community, + development: myRating?.development, + infrastructure: myRating?.infrastructure, + transparency: myRating?.transparency, + trustiness: myRating?.trustiness + }) }, { rater: t('eosRates'), diff --git a/webapp/src/routes/BlockProducers/BlockProducerRate.js b/webapp/src/routes/BlockProducers/BlockProducerRate.js index bf8f7848..8cc74e8c 100644 --- a/webapp/src/routes/BlockProducers/BlockProducerRate.js +++ b/webapp/src/routes/BlockProducers/BlockProducerRate.js @@ -52,7 +52,14 @@ const Alert = forwardRef(function Alert(props, ref) { return }) -const RadarSection = ({ t, state, myRating, polarChartData, classes }) => ( +const RadarSection = ({ + t, + state, + myRating, + polarChartData, + classes, + isRated +}) => ( <> @@ -62,7 +69,7 @@ const RadarSection = ({ t, state, myRating, polarChartData, classes }) => ( rows={[ { rater: t('myRate'), - amount: 1, + amount: isRated ? 1 : 0, average: getMyRatingAverage({ community: myRating.community, development: myRating.development, @@ -100,7 +107,8 @@ RadarSection.propTypes = { state: PropTypes.object, myRating: PropTypes.object, polarChartData: PropTypes.array, - classes: PropTypes.object + classes: PropTypes.object, + isRated: PropTypes.bool } const BlockProducerRate = () => { @@ -114,7 +122,7 @@ const BlockProducerRate = () => { { setProducer, setLastTransaction, handleMutationInsertUserRating } ] = useSharedState() const [ratingState, setRatingState] = useState(initialRatingState) - const [isRated, setIsRated] = useState(true) + const [isRated, setIsRated] = useState(false) const [blockProducerLogo, setBlockProducerLogo] = useState(null) const [blockProducerTitle, setBlockProducerTitle] = useState('No Title') const [polarChartData, setPolarChartData] = useState([]) @@ -476,6 +484,7 @@ const BlockProducerRate = () => { state={state} myRating={myRating} polarChartData={polarChartData} + isRated={isRated} classes={classes} /> @@ -573,6 +582,7 @@ const BlockProducerRate = () => { t={t} myRating={myRating} state={state} + isRated={isRated} polarChartData={polarChartData} /> diff --git a/webapp/src/utils/get-my-rating-average.js b/webapp/src/utils/get-my-rating-average.js index c720d642..d4e4cc54 100644 --- a/webapp/src/utils/get-my-rating-average.js +++ b/webapp/src/utils/get-my-rating-average.js @@ -1,4 +1,6 @@ const getMyRatingAverage = myRating => { + if (!myRating) return 0 + const average = ((myRating?.community || 0) + (myRating?.development || 0) + @@ -6,6 +8,7 @@ const getMyRatingAverage = myRating => { (myRating?.transparency || 0) + (myRating?.trustiness || 0)) / Object.keys(myRating || {}).length + return average }