diff --git a/src/components/LeaderBoard/Leaderboard.jsx b/src/components/LeaderBoard/Leaderboard.jsx index b6b137453d..c35170ed1e 100644 --- a/src/components/LeaderBoard/Leaderboard.jsx +++ b/src/components/LeaderBoard/Leaderboard.jsx @@ -9,7 +9,8 @@ import { assignStarDotColors, showStar, } from 'utils/leaderboardPermissions'; -import MouseoverTextTotalTime from '../mouseoverText/mouseoverTextTotalTime'; +import MouseoverTextTotalTimeButton from '../mouseoverText/MouseoverTextTotalTimeButton'; +import MouseoverTextTotalTimeUpdater from '../mouseoverText/MouseoverTextTotalTimeUpdater'; function useDeepEffect(effectFunc, deps) { const isFirst = useRef(true); @@ -219,12 +220,10 @@ const LeaderBoard = ({ Total Time {isOwner && ( - + )} {!isOwner && ( -
- -
+ )} diff --git a/src/components/mouseoverText/mouseoverTextTotalTime.jsx b/src/components/mouseoverText/MouseoverTextTotalTimeButton.jsx similarity index 93% rename from src/components/mouseoverText/mouseoverTextTotalTime.jsx rename to src/components/mouseoverText/MouseoverTextTotalTimeButton.jsx index b1e414ef02..d5370b0f2c 100644 --- a/src/components/mouseoverText/mouseoverTextTotalTime.jsx +++ b/src/components/mouseoverText/MouseoverTextTotalTimeButton.jsx @@ -7,7 +7,7 @@ import { connect } from 'react-redux'; import { getMouseoverText, createMouseoverText, updateMouseoverText } from '../../actions/mouseoverTextAction'; -function MouseoverTextTotalTime({ +function MouseoverTextTotalTimeButton({ getMouseoverText, createMouseoverText, updateMouseoverText, @@ -46,16 +46,13 @@ function MouseoverTextTotalTime({ }; if (text) { updateMouseoverText(mouseoverTextId, mouseoverText); - setModalOpen(false); - setText(newText); - onUpdate(newText); } else { //console.log('createMouseoverText is ' + mouseoverText.newMouseoverText); createMouseoverText(mouseoverText); - setModalOpen(false); - setText(newText); - onUpdate(newText); } + setModalOpen(false); + setText(newText); + onUpdate(newText); }; const handleCancelSave = () => { @@ -116,7 +113,7 @@ const mapDispatchToProps = dispatch => ({ dispatch(updateMouseoverText(mouseoverTextId, mouseoverText)), }); -export default connect(mapStateToProps, mapDispatchToProps)(MouseoverTextTotalTime); +export default connect(mapStateToProps, mapDispatchToProps)(MouseoverTextTotalTimeButton); diff --git a/src/components/mouseoverText/MouseoverTextTotalTimeUpdater.jsx b/src/components/mouseoverText/MouseoverTextTotalTimeUpdater.jsx new file mode 100644 index 0000000000..b543dcf97b --- /dev/null +++ b/src/components/mouseoverText/MouseoverTextTotalTimeUpdater.jsx @@ -0,0 +1,29 @@ +import React, { useEffect } from 'react'; +import { connect } from 'react-redux'; +import { getMouseoverText } from '../../actions/mouseoverTextAction'; + +function MouseoverTextTotalTimeUpdater({ getMouseoverText, mouseoverText, onUpdate }) { + useEffect(() => { + getMouseoverText(); + }, [getMouseoverText]); + + useEffect(() => { + if (mouseoverText) { + onUpdate(mouseoverText); // Call the onUpdate function to pass the mouseoverText value to the parent component + } + }, [mouseoverText, onUpdate]); + + return null; +} + +const mapStateToProps = (state) => { + return { + mouseoverText: state?.mouseoverText?.[0]?.mouseoverText, + }; +}; + +const mapDispatchToProps = (dispatch) => ({ + getMouseoverText: () => dispatch(getMouseoverText()), +}); + +export default connect(mapStateToProps, mapDispatchToProps)(MouseoverTextTotalTimeUpdater);