From 5a62fabd1cfcc7e33e2fbd74ba469977a8b2b1b6 Mon Sep 17 00:00:00 2001 From: Warrick Corfe-Tan Date: Thu, 24 Jun 2021 16:47:27 +1000 Subject: [PATCH] Doesn't autoplay new messages once if last message received was an autoplayed. --- ts/components/conversation/H5AudioPlayer.tsx | 4 ++-- .../session/conversation/SessionMessagesList.tsx | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ts/components/conversation/H5AudioPlayer.tsx b/ts/components/conversation/H5AudioPlayer.tsx index d23169984..80d62c9e1 100644 --- a/ts/components/conversation/H5AudioPlayer.tsx +++ b/ts/components/conversation/H5AudioPlayer.tsx @@ -1,5 +1,5 @@ // Audio Player -import React, { useEffect, useRef } from 'react'; +import React, { useEffect, useRef, useState } from 'react'; import H5AudioPlayer from 'react-h5-audio-player'; import { useSelector } from 'react-redux'; import { useTheme } from 'styled-components'; @@ -39,7 +39,7 @@ export const AudioPlayerWithEncryptedFile = (props: { if ( window.inboxStore?.getState().userConfig.audioAutoplay === true && props.playNextMessage && - props.playableMessageIndex + props.playableMessageIndex !== undefined ) { props.playNextMessage(props.playableMessageIndex); } diff --git a/ts/components/session/conversation/SessionMessagesList.tsx b/ts/components/session/conversation/SessionMessagesList.tsx index bcf6ad4b2..4a9d787f4 100644 --- a/ts/components/session/conversation/SessionMessagesList.tsx +++ b/ts/components/session/conversation/SessionMessagesList.tsx @@ -277,12 +277,15 @@ export class SessionMessagesList extends React.Component { * @param index index of message that just completed */ const playNextMessage = (index: any) => { - const nextIndex = index - 1; - if (messages[nextIndex]) { - this.setState({ - nextMessageToPlay: nextIndex, - }); + let nextIndex: number | null = index - 1; + + if (index <= 0 || messages.length < index - 1) { + nextIndex = null; } + + this.setState({ + nextMessageToPlay: nextIndex, + }); }; if (messageProps) {