diff --git a/apps/client/src/features/control/playback/PlaybackControl.tsx b/apps/client/src/features/control/playback/PlaybackControl.tsx
index 560a9c013..3476ef3a7 100644
--- a/apps/client/src/features/control/playback/PlaybackControl.tsx
+++ b/apps/client/src/features/control/playback/PlaybackControl.tsx
@@ -1,5 +1,3 @@
-import { Playback } from 'ontime-types';
-
import { usePlaybackControl } from '../../../common/hooks/useSocket';
import AddTime from './add-time/AddTime';
@@ -14,7 +12,7 @@ export default function PlaybackControl() {
return (
-
- Running timer
-
-
-
-
- Time now
-
-
+
+
+
);
}
diff --git a/apps/client/src/features/overview/composite/TimeElements.module.scss b/apps/client/src/features/overview/composite/TimeElements.module.scss
index f7c4c3529..b51d8b709 100644
--- a/apps/client/src/features/overview/composite/TimeElements.module.scss
+++ b/apps/client/src/features/overview/composite/TimeElements.module.scss
@@ -66,4 +66,4 @@
color: $active-indicator;
font-size: calc(1rem - 2px);
text-align: right;
-}
\ No newline at end of file
+}
diff --git a/apps/client/src/features/overview/composite/TimeElements.tsx b/apps/client/src/features/overview/composite/TimeElements.tsx
index 88a68c5e2..2d0f6aa62 100644
--- a/apps/client/src/features/overview/composite/TimeElements.tsx
+++ b/apps/client/src/features/overview/composite/TimeElements.tsx
@@ -1,6 +1,6 @@
import { useMemo } from 'react';
import { TbCalendar, TbCalendarClock, TbCalendarDown, TbCalendarStar, TbFlagDown, TbFlagStar } from 'react-icons/tb';
-import { isOntimeBlock, OntimeBlock, OntimeEvent, TimerType } from 'ontime-types';
+import { isOntimeBlock, OntimeBlock, OntimeEvent, TimerPhase, TimerType } from 'ontime-types';
import { isPlaybackActive, millisToString } from 'ontime-utils';
import Tooltip from '../../../common/components/tooltip/Tooltip';
@@ -194,7 +194,7 @@ export function ProgressOverview() {
const current = selectedEventIndex !== null ? selectedEventIndex + 1 : enDash;
const progressText = numEvents ? `${current} of ${numEvents || enDash}` : enDash;
- return
;
+ return
;
}
export function OffsetOverview() {
@@ -208,16 +208,23 @@ export function OffsetOverview() {
return
;
}
-export function ClockOverview() {
+export function ClockOverview({ className }: { className?: string }) {
const { clock } = useClock();
- return
;
+ return
;
}
-export function TimerOverview() {
- const { current } = useTimer();
+export function TimerOverview({ className }: { className?: string }) {
+ const timer = useTimer();
- const display = millisToString(current, { fallback: timerPlaceholder });
+ const isWaiting = timer.phase === TimerPhase.Pending;
+ const title = isWaiting ? 'Count to start' : 'Running timer';
+ const display = millisToString(isWaiting ? timer.secondaryTimer : timer.current, { fallback: timerPlaceholder });
+ const timerState = (() => {
+ if (isWaiting) return 'waiting';
+ if (timer.current === null) return 'muted';
+ return 'active';
+ })();
- return
;
+ return
;
}
diff --git a/apps/client/src/features/overview/composite/TimeLayout.module.scss b/apps/client/src/features/overview/composite/TimeLayout.module.scss
index 1c0a49895..97027489a 100644
--- a/apps/client/src/features/overview/composite/TimeLayout.module.scss
+++ b/apps/client/src/features/overview/composite/TimeLayout.module.scss
@@ -29,6 +29,11 @@
gap: 0.25rem;
}
+ &[data-state='waiting'] {
+ .label {
+ color: $ontime-roll;
+ }
+ }
&[data-state='over'] {
.label .over {
color: $playback-over;
diff --git a/apps/client/src/features/overview/composite/TimeLayout.tsx b/apps/client/src/features/overview/composite/TimeLayout.tsx
index 5e501c7e8..501c26ebf 100644
--- a/apps/client/src/features/overview/composite/TimeLayout.tsx
+++ b/apps/client/src/features/overview/composite/TimeLayout.tsx
@@ -5,17 +5,17 @@ import style from './TimeLayout.module.scss';
interface TimeLayoutProps {
label: string;
value: string;
- muted?: boolean;
+ state?: 'muted' | 'waiting' | 'active';
daySpan?: number;
className?: string;
testId?: string;
}
-export function TimeColumn({ label, value, muted, className, testId }: TimeLayoutProps) {
+export function TimeColumn({ label, value, state = 'active', className, testId }: TimeLayoutProps) {
return (
-
+
{label}
-
+
{value}
diff --git a/apps/client/src/theme/_ontimeStyles.scss b/apps/client/src/theme/_ontimeStyles.scss
index 4d55660da..9818e75ce 100644
--- a/apps/client/src/theme/_ontimeStyles.scss
+++ b/apps/client/src/theme/_ontimeStyles.scss
@@ -28,7 +28,7 @@ $active-green: $green-700;
// playback colours
$playback-start: $green-600;
-$ontime-roll: #0274B6;
+$ontime-roll: #22a0e9;
$ontime-delay: #F57C13;
$ontime-delay-text: #E69056;
$ontime-paused: #c05621;