diff --git a/app/javascript/components/rooms/room/join/JoinCard.jsx b/app/javascript/components/rooms/room/join/JoinCard.jsx index 8862a1b29f35d24a1e5b4fc8dbd7c8e4bda64594..2dedcef1fdc12ff006d72cd3083f72bc761af01e 100644 --- a/app/javascript/components/rooms/room/join/JoinCard.jsx +++ b/app/javascript/components/rooms/room/join/JoinCard.jsx @@ -48,9 +48,10 @@ export default function JoinCard() { const currentUser = useAuth(); const { friendlyId } = useParams(); const [hasStarted, setHasStarted] = useState(false); + const [joinInterval, setJoinInterval] = useState(); const publicRoom = usePublicRoom(friendlyId); - const roomStatusAPI = useRoomStatus(friendlyId); + const roomStatusAPI = useRoomStatus(friendlyId, joinInterval); const { data: env } = useEnv(); @@ -76,6 +77,8 @@ export default function JoinCard() { } roomStatusAPI.mutate(data); + const interval = setInterval(() => roomStatusAPI.mutate(data), 5000); + setJoinInterval(interval); }; const reset = () => { setHasStarted(false); };// Reset pipeline; diff --git a/app/javascript/hooks/mutations/rooms/useRoomStatus.jsx b/app/javascript/hooks/mutations/rooms/useRoomStatus.jsx index 832a0655f1a2129a5c5f182ebdac4f83ef3fbca2..4b97b90398a48c07ff06c22ba1e8d9d9b0f7ba75 100644 --- a/app/javascript/hooks/mutations/rooms/useRoomStatus.jsx +++ b/app/javascript/hooks/mutations/rooms/useRoomStatus.jsx @@ -19,7 +19,7 @@ import { useMutation } from 'react-query'; import { useTranslation } from 'react-i18next'; import axios from '../../../helpers/Axios'; -export default function useRoomStatus(friendlyId) { +export default function useRoomStatus(friendlyId, joinInterval) { const { t } = useTranslation(); return useMutation( @@ -27,11 +27,13 @@ export default function useRoomStatus(friendlyId) { { onSuccess: ({ joinUrl }) => { if (joinUrl) { + clearInterval(joinInterval); toast.loading(t('toast.success.room.joining_meeting')); window.location.replace(joinUrl); } }, onError: () => { + clearInterval(joinInterval); toast.error(t('toast.error.problem_completing_action')); }, },