feat: propper timeuntil calc in countdown view (#1765)

* fix error with is linked to loaded metadata

* pass down metadata

* create expected schedule

* expected start in sub info

* for singel subscribtions

* refactor

* add color to single events

* refactor: clean up subscribtion data

* show schedule and secondray data for single events

* improve subscribtion data display
This commit is contained in:
Alex Christoffer Rasmussen
2025-09-07 21:40:27 +02:00
parent 4385e0b9c9
commit 67e67d6a5d
15 changed files with 272 additions and 209 deletions
@@ -9,6 +9,7 @@ import ViewLogo from '../../common/components/view-logo/ViewLogo';
import ViewParamsEditor from '../../common/components/view-params-editor/ViewParamsEditor';
import { useClock } from '../../common/hooks/useSocket';
import { useWindowTitle } from '../../common/hooks/useWindowTitle';
import { ExtendedEntry } from '../../common/utils/rundownMetadata';
import { formatTime, getDefaultFormat } from '../../common/utils/time';
import SuperscriptTime from '../../features/viewers/common/superscript-time/SuperscriptTime';
import { useTranslation } from '../../translation/TranslationProvider';
@@ -39,14 +40,14 @@ export default function CountdownLoader() {
return <Countdown {...data} />;
}
function Countdown({ customFields, events, projectData, isMirrored, settings }: CountdownData) {
function Countdown({ customFields, rundownData, projectData, isMirrored, settings }: CountdownData) {
const { getLocalizedString } = useTranslation();
const { subscriptions } = useCountdownOptions();
const [editMode, setEditMode] = useState(false);
// gather rundown data
const playableEvents = events.filter((event) => isOntimeEvent(event) && isPlayableEvent(event));
const playableEvents = rundownData.filter((entry) => isOntimeEvent(entry) && isPlayableEvent(entry));
// gather presentation data
const hasEvents = playableEvents.length > 0;
@@ -85,7 +86,7 @@ function Countdown({ customFields, events, projectData, isMirrored, settings }:
}
interface CountdownContentsProps {
playableEvents: OntimeEvent[];
playableEvents: ExtendedEntry<OntimeEvent>[];
subscriptions: EntryId[];
goToEditMode: () => void;
}