From 856ced056a7d8579dd051adeac43094fab0eec41 Mon Sep 17 00:00:00 2001 From: Warrick Corfe-Tan Date: Thu, 24 Jun 2021 14:00:07 +1000 Subject: [PATCH] Minor tidying. --- ts/components/conversation/H5AudioPlayer.tsx | 17 +++++++++++------ ts/components/conversation/Message.tsx | 5 ++--- .../conversation/SessionMessagesList.tsx | 10 +++++++--- ts/models/messageType.ts | 5 ++--- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/ts/components/conversation/H5AudioPlayer.tsx b/ts/components/conversation/H5AudioPlayer.tsx index bd673b1c8..cf74a5ac0 100644 --- a/ts/components/conversation/H5AudioPlayer.tsx +++ b/ts/components/conversation/H5AudioPlayer.tsx @@ -11,9 +11,8 @@ export const AudioPlayerWithEncryptedFile = (props: { src: string; contentType: string; playbackSpeed: number; - changeTestList?: any; - shouldPlay?: boolean - index?: number + playNextMessage?: (index: number) => void; + playableMessageIndex?: number nextMessageToPlay?: number }) => { const theme = useTheme(); @@ -29,14 +28,20 @@ export const AudioPlayerWithEncryptedFile = (props: { }, [playbackSpeed]); useEffect(() => { - if (props.index == props.nextMessageToPlay) { + if (props.playableMessageIndex == props.nextMessageToPlay) { player.current?.audio.current?.play(); } }) const onEnded = () => { - if (window.inboxStore?.getState().userConfig.audioAutoplay === true) { - props.changeTestList(props.index); + // if audio autoplay is enabled, call method to start playing + // the next playable message + if ( + window.inboxStore?.getState().userConfig.audioAutoplay === true && + props.playNextMessage && + props.playableMessageIndex + ) { + props.playNextMessage(props.playableMessageIndex); } } diff --git a/ts/components/conversation/Message.tsx b/ts/components/conversation/Message.tsx index 91d7657cb..5c0605254 100644 --- a/ts/components/conversation/Message.tsx +++ b/ts/components/conversation/Message.tsx @@ -202,9 +202,8 @@ class MessageInner extends React.PureComponent { playbackSpeed={this.state.playbackSpeed} src={firstAttachment.url} contentType={firstAttachment.contentType} - changeTestList={this.props.changeTestList} - shouldPlay={this.props.shouldPlay} - index={this.props.index} + playNextMessage={this.props.playNextMessage} + playableMessageIndex={this.props.playableMessageIndex} nextMessageToPlay={this.props.nextMessageToPlay} /> diff --git a/ts/components/session/conversation/SessionMessagesList.tsx b/ts/components/session/conversation/SessionMessagesList.tsx index bff340673..aad2e1d3a 100644 --- a/ts/components/session/conversation/SessionMessagesList.tsx +++ b/ts/components/session/conversation/SessionMessagesList.tsx @@ -273,7 +273,11 @@ export class SessionMessagesList extends React.Component { return; } - const changeTestList = (index: any) => { + /** + * Sets the targeted index for the next + * @param index index of message that just completed + */ + const playNextMessage = (index: any) => { index--; if (messages[index]) { this.setState({ @@ -284,8 +288,8 @@ export class SessionMessagesList extends React.Component { if (messageProps) { messageProps.nextMessageToPlay = this.state.nextMessageToPlay - messageProps.index = playableMessageIndex; - messageProps.changeTestList = changeTestList; + messageProps.playableMessageIndex = playableMessageIndex; + messageProps.playNextMessage = playNextMessage; } playableMessageIndex++; diff --git a/ts/models/messageType.ts b/ts/models/messageType.ts index 7ee9c1c76..7990dab8d 100644 --- a/ts/models/messageType.ts +++ b/ts/models/messageType.ts @@ -253,8 +253,7 @@ export interface MessageRegularProps { markRead: (readAt: number) => Promise; theme: DefaultTheme; - shouldPlay?: boolean; - index?: number; + playableMessageIndex?: number; nextMessageToPlay?: number; - changeTestList: (value: any) => any; + playNextMessage?: (value: number) => any; }