From 398e4ac52ad68f5ec90eadc747d84820f6ac4e40 Mon Sep 17 00:00:00 2001 From: Shekar Siri Date: Thu, 10 Feb 2022 20:34:32 +0100 Subject: [PATCH] feat(ui) - assist status message --- .../components/Session_/Player/Overlay.tsx | 6 +- .../Player/Overlay/LiveStatusText.tsx | 57 ++++++++++++++++++- .../LiveFilterModal/LiveFilterModal.tsx | 2 +- 3 files changed, 61 insertions(+), 4 deletions(-) diff --git a/frontend/app/components/Session_/Player/Overlay.tsx b/frontend/app/components/Session_/Player/Overlay.tsx index 09e1036a6..ca4384ccb 100644 --- a/frontend/app/components/Session_/Player/Overlay.tsx +++ b/frontend/app/components/Session_/Player/Overlay.tsx @@ -2,6 +2,7 @@ import React, {useEffect} from 'react'; import { connectPlayer, markTargets } from 'Player'; import { getStatusText } from 'Player/MessageDistributor/managers/AssistManager'; import type { MarkedTarget } from 'Player/MessageDistributor/StatedScreen/StatedScreen'; +import { ConnectionStatus } from 'Player/MessageDistributor/managers/AssistManager'; import AutoplayTimer from './Overlay/AutoplayTimer'; import PlayIconLayer from './Overlay/PlayIconLayer'; @@ -17,6 +18,7 @@ interface Props { loading: boolean, live: boolean, liveStatusText: string, + concetionStatus: ConnectionStatus, autoplay: boolean, markedTargets: MarkedTarget[] | null, activeTargetIndex: number, @@ -33,6 +35,7 @@ function Overlay({ loading, live, liveStatusText, + concetionStatus, autoplay, markedTargets, activeTargetIndex, @@ -53,7 +56,7 @@ function Overlay({ <> { showAutoplayTimer && } { showLiveStatusText && - + } { messagesLoading && } { showPlayIconLayer && @@ -74,6 +77,7 @@ export default connectPlayer(state => ({ autoplay: state.autoplay, live: state.live, liveStatusText: getStatusText(state.peerConnectionStatus), + concetionStatus: state.peerConnectionStatus, markedTargets: state.markedTargets, activeTargetIndex: state.activeTargetIndex, }))(Overlay); \ No newline at end of file diff --git a/frontend/app/components/Session_/Player/Overlay/LiveStatusText.tsx b/frontend/app/components/Session_/Player/Overlay/LiveStatusText.tsx index e3eb7fc20..b642a8a7c 100644 --- a/frontend/app/components/Session_/Player/Overlay/LiveStatusText.tsx +++ b/frontend/app/components/Session_/Player/Overlay/LiveStatusText.tsx @@ -1,11 +1,64 @@ import React from 'react'; import stl from './LiveStatusText.css'; import ovStl from './overlay.css'; +import { ConnectionStatus } from 'Player/MessageDistributor/managers/AssistManager'; +import { Loader } from 'UI'; interface Props { text: string; + concetionStatus: ConnectionStatus; } -export default function LiveStatusText({ text }: Props) { - return
{text}
+export default function LiveStatusText({ text, concetionStatus }: Props) { + const renderView = () => { + switch (concetionStatus) { + case ConnectionStatus.Connecting: + return ( +
+ +
Connecting...
+
Establishing a connection with the remote session.
+
+ ) + case ConnectionStatus.WaitingMessages: + return ( +
+ +
Waiting for the session to become active...
+
If it's taking too much time, it could mean the user is simply inactive.
+
+ ) + case ConnectionStatus.Connected: + return ( +
+
Connected
+
+ ) + case ConnectionStatus.Inactive: + return ( +
+ +
Waiting for the session to become active...
+
If it's taking too much time, it could mean the user is simply inactive.
+
+ ) + case ConnectionStatus.Disconnected: + return ( +
+
Disconnected
+
The connection was lost with the remote session. The user may have simply closed the tab/browser.
+
+ ) + case ConnectionStatus.Error: + return ( +
+
Error
+
Something wrong just happened. Try refreshing the page.
+
+ ) + } + } + return
+ { renderView()} +
} \ No newline at end of file diff --git a/frontend/app/components/shared/Filters/LiveFilterModal/LiveFilterModal.tsx b/frontend/app/components/shared/Filters/LiveFilterModal/LiveFilterModal.tsx index 2757ca53e..c75d0f4ca 100644 --- a/frontend/app/components/shared/Filters/LiveFilterModal/LiveFilterModal.tsx +++ b/frontend/app/components/shared/Filters/LiveFilterModal/LiveFilterModal.tsx @@ -38,7 +38,7 @@ function LiveFilterModal(props: Props) { { showSearchList && (
- { filterSearchList && Object.keys(filterSearchList).map((key, index) => { + { filterSearchList && Object.keys(filterSearchList).filter(i => filtersMap[i].isLive).map((key, index) => { const filter = filterSearchList[key]; const option = filtersMap[key]; return (