From b4200a1b87087a59c193bda595c903ec202c9f02 Mon Sep 17 00:00:00 2001 From: Nuwan Date: Thu, 14 Dec 2023 20:02:39 +0530 Subject: [PATCH] fix: validate latency badge props --- jam-ui/src/components/profile/JKLatencyBadge.js | 9 ++++++--- jam-ui/src/components/profile/JKUserLatencyBadge.js | 8 +++++++- jam-ui/src/components/sessions/JKSessionUser.js | 8 +++++++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/jam-ui/src/components/profile/JKLatencyBadge.js b/jam-ui/src/components/profile/JKLatencyBadge.js index 2d31034ad..c7d185b0b 100644 --- a/jam-ui/src/components/profile/JKLatencyBadge.js +++ b/jam-ui/src/components/profile/JKLatencyBadge.js @@ -31,12 +31,12 @@ const JKLatencyBadge = ({ latencyData, showAll, showBadgeOnly }) => { useEffect(() => { if (latencyData) { - const tot = Math.round(latencyData.ars.internet_latency) + Math.round(latencyData.audio_latency); + const tot = Math.round(latencyData.ars_internet_latency) + Math.round(latencyData.audio_latency); setLatencyLabel(tot); if (showAll) { setLatencyInfo( - `${Math.round(latencyData.ars.internet_latency)}ms (Internet) + ${Math.round( + `${Math.round(latencyData.ars_internet_latency)}ms (Internet) + ${Math.round( latencyData.audio_latency )}ms (audio) = ${tot}ms (total) ` ); @@ -57,7 +57,10 @@ const JKLatencyBadge = ({ latencyData, showAll, showBadgeOnly }) => { }; JKLatencyBadge.propTypes = { - latencyData: PropTypes.object, + latencyData: PropTypes.shape({ + ars_internet_latency: PropTypes.number.isRequired, + audio_latency: PropTypes.number.isRequired + }), showAll: PropTypes.bool, showBadgeOnly: PropTypes.bool }; diff --git a/jam-ui/src/components/profile/JKUserLatencyBadge.js b/jam-ui/src/components/profile/JKUserLatencyBadge.js index f843b8ab8..4b64d883c 100644 --- a/jam-ui/src/components/profile/JKUserLatencyBadge.js +++ b/jam-ui/src/components/profile/JKUserLatencyBadge.js @@ -5,7 +5,13 @@ import PropTypes from 'prop-types'; import JKLatencyBadge from './JKLatencyBadge'; const JKUserLatency = ({user, showAll, showBadgeOnly}) => { - const latencyData = useSelector(state => state.latency.latencies.find(l => l.user_id === user.id)); + const latencyData = useSelector(state => { + const userLatency = state.latency.latencies.find(l => l.user_id === user.id); + return { + ars_internet_latency: userLatency?.ars?.internet_latency, + audio_latency: userLatency?.audio_latency + } + }); return ( ); diff --git a/jam-ui/src/components/sessions/JKSessionUser.js b/jam-ui/src/components/sessions/JKSessionUser.js index 596fc5422..f9644d3ae 100644 --- a/jam-ui/src/components/sessions/JKSessionUser.js +++ b/jam-ui/src/components/sessions/JKSessionUser.js @@ -10,7 +10,13 @@ import PropTypes from 'prop-types'; function JKSessionUser({ user }) { const dispatch = useDispatch(); - const latencyData = useSelector(state => state.latency.latencies.find(l => l.user_id === user.id)); + const latencyData = useSelector(state => { + const userLatency = state.latency.latencies.find(l => l.user_id === user.id); + return { + ars_internet_latency: userLatency?.ars?.internet_latency, + audio_latency: userLatency?.audio_latency + } + }); const userData = useSelector(state => state.session.people.find(p => p.id === user.id)); const [showSidePanel, setShowSidePanel] = useState(false); const { greaterThan } = useResponsive();