From 298af3ec5aa77ef50788ff01921f38edbadab4ef Mon Sep 17 00:00:00 2001 From: Fabian Posenau Date: Thu, 16 Feb 2023 21:46:40 +0100 Subject: [PATCH] Fix: #279 End Message in Minimal Timer (#286) * fix: Minimal View #279 end message --------- Co-authored-by: Fabian Posenau --- apps/client/src/common/models/ViewTypes.ts | 3 +- .../viewers/minimal-timer/MinimalTimer.scss | 9 ++++ .../viewers/minimal-timer/MinimalTimer.tsx | 44 +++++++++++-------- 3 files changed, 36 insertions(+), 20 deletions(-) diff --git a/apps/client/src/common/models/ViewTypes.ts b/apps/client/src/common/models/ViewTypes.ts index 105a4f72d..f860a6732 100644 --- a/apps/client/src/common/models/ViewTypes.ts +++ b/apps/client/src/common/models/ViewTypes.ts @@ -11,4 +11,5 @@ export type OverridableOptions = { hideNav?: boolean; hideOvertime?: boolean; hideMessagesOverlay?: boolean; -} + hideEndMessage?: boolean; +}; diff --git a/apps/client/src/features/viewers/minimal-timer/MinimalTimer.scss b/apps/client/src/features/viewers/minimal-timer/MinimalTimer.scss index 3b59375e3..53cebb5d5 100644 --- a/apps/client/src/features/viewers/minimal-timer/MinimalTimer.scss +++ b/apps/client/src/features/viewers/minimal-timer/MinimalTimer.scss @@ -76,4 +76,13 @@ text-align: center; font-weight: 600; } + + .end-message { + text-align: center; + font-size: 12vw; + line-height: 0.9em; + font-weight: 600; + color: $timer-finished-color; + padding: 0; + } } diff --git a/apps/client/src/features/viewers/minimal-timer/MinimalTimer.tsx b/apps/client/src/features/viewers/minimal-timer/MinimalTimer.tsx index d36c4ab39..3d2efcb51 100644 --- a/apps/client/src/features/viewers/minimal-timer/MinimalTimer.tsx +++ b/apps/client/src/features/viewers/minimal-timer/MinimalTimer.tsx @@ -1,5 +1,6 @@ import { useEffect } from 'react'; import { useSearchParams } from 'react-router-dom'; +import { EventDataType } from 'common/models/EventData.type'; import { useAtom } from 'jotai'; import { overrideStylesURL } from '../../../common/api/apiConstants'; @@ -18,10 +19,11 @@ interface MinimalTimerProps { pres: PresenterMessageType; time: TimeManagerType; viewSettings: ViewSettingsType; + general: EventDataType; } export default function MinimalTimer(props: MinimalTimerProps) { - const { pres, time, viewSettings } = props; + const { pres, time, viewSettings, general } = props; const { shouldRender } = useRuntimeStylesheet(viewSettings?.overrideStyles && overrideStylesURL); const [searchParams] = useSearchParams(); const [isMirrored] = useAtom(mirrorViewersAtom); @@ -123,10 +125,14 @@ export default function MinimalTimer(props: MinimalTimerProps) { const hideMessagesOverlay = searchParams.get('hidemessages'); userOptions.hideMessagesOverlay = Boolean(hideMessagesOverlay); + const hideEndMessage = searchParams.get('hideendmessage'); + userOptions.hideEndMessage = Boolean(hideEndMessage); + const showOverlay = pres.text !== '' && pres.visible; const isPlaying = time.playback !== 'pause'; const isNegative = (time.current ?? 0) < 0; const showFinished = isNegative && !userOptions?.hideOvertime; + const showEndMessage = time.current < 0 && general.endMessage && !hideEndMessage; const baseClasses = `minimal-timer ${isMirrored ? 'mirror' : ''}`; @@ -153,27 +159,27 @@ export default function MinimalTimer(props: MinimalTimerProps) { > {!hideMessagesOverlay && ( -
+
{pres.text}
)} -
- {stageTimer} -
+ {showEndMessage ? ( +
{general.endMessage}
+ ) : ( +
+ {stageTimer} +
+ )}
); }