From c5337e18d64d5721c66ebfc51ccfe4a6d016824f Mon Sep 17 00:00:00 2001 From: Derek Worthen Date: Sat, 2 Mar 2024 08:01:26 -0800 Subject: [PATCH] Fix number formatting and NaN issue --- .changeset/olive-rabbits-warn.md | 5 +++ .../src/pages/polls/motions/MotionsBallot.tsx | 31 ++++++------------- 2 files changed, 15 insertions(+), 21 deletions(-) create mode 100644 .changeset/olive-rabbits-warn.md diff --git a/.changeset/olive-rabbits-warn.md b/.changeset/olive-rabbits-warn.md new file mode 100644 index 0000000..3d19a1a --- /dev/null +++ b/.changeset/olive-rabbits-warn.md @@ -0,0 +1,5 @@ +--- +'gov4git-desktop-app': patch +--- + +Fix number formatting and NaN issue diff --git a/src/renderer/src/pages/polls/motions/MotionsBallot.tsx b/src/renderer/src/pages/polls/motions/MotionsBallot.tsx index 762d477..bdf8878 100644 --- a/src/renderer/src/pages/polls/motions/MotionsBallot.tsx +++ b/src/renderer/src/pages/polls/motions/MotionsBallot.tsx @@ -36,9 +36,6 @@ export const MotionsBallot: FC = function MotionsBallot({ const styles = useIssueBallotStyles() const badgeStyles = useBadgeStyles() const [voteScore, setVoteScore] = useState(motion.userScore) - const [displayVoteScore, setDisplayVoteScore] = useState( - formatDecimal(voteScore), - ) const [voteStrengthInCredits, setVoteStrengthInCredits] = useState(0) const [totalCostInCredits, setTotalCostInCredits] = useState(0) const messageStyles = useMessageStyles() @@ -113,37 +110,33 @@ export const MotionsBallot: FC = function MotionsBallot({ const regex = /^-?\d+\.?\d*$/ if (val === '' || !regex.test(val)) { setVoteScore((v: number) => { - setDisplayVoteScore(formatDecimal(v)) return v }) } else { const value = +e.target.value if (value > maxScore) { - setDisplayVoteScore(formatDecimal(maxScore)) - setVoteScore(+formatDecimal(maxScore)) + setVoteScore(maxScore) } else if (value < minScore) { - setDisplayVoteScore(formatDecimal(minScore)) - setVoteScore(+formatDecimal(minScore)) + setVoteScore(minScore) } else { - setDisplayVoteScore(e.target.value) - setVoteScore(+formatDecimal(value)) + setVoteScore(+value) } } }, - [setVoteScore, minScore, maxScore, setDisplayVoteScore], + [setVoteScore, minScore, maxScore], ) useEffect(() => { - setInputWidth(displayVoteScore.length + 4) - }, [setInputWidth, displayVoteScore]) + setInputWidth(`${voteScore}`.length + 4) + }, [setInputWidth, voteScore]) const change = useCallback( (amount: number) => { setVoteScore((v: number) => { const newVal = v + amount - if (newVal > maxScore) return +formatDecimal(maxScore) - if (newVal < minScore) return +formatDecimal(minScore) - return +formatDecimal(newVal) + if (newVal > maxScore) return maxScore + if (newVal < minScore) return minScore + return newVal }) }, [setVoteScore, minScore, maxScore], @@ -192,10 +185,6 @@ export const MotionsBallot: FC = function MotionsBallot({ setSuccessMessage(null) }, [setSuccessMessage]) - useEffect(() => { - setDisplayVoteScore(formatDecimal(voteScore)) - }, [voteScore, setDisplayVoteScore]) - useEffect(() => { const listener = () => { stop() @@ -291,7 +280,7 @@ export const MotionsBallot: FC = function MotionsBallot({ className={styles.voteInput} id={`ballot-vote-${motion.motionId}`} type="text" - value={displayVoteScore} + value={voteScore} onInput={onChange} // onBlur={onBlur} style={{