refactor: cleanup store (#727)

* refactor: isolate clock

* refactor: isolate private

* refactor: remove duplicate

* chore: rename loaded > runtime

* fix: handle no events loaded
This commit is contained in:
Carlos Valente
2024-01-24 00:20:10 +01:00
committed by GitHub
parent 0cd2ca4191
commit b4ad533e6a
31 changed files with 411 additions and 384 deletions
@@ -1,8 +1,6 @@
import { MaybeNumber } from '../../utils/utils.type.js';
export type Runtime = {
numEvents: number;
selectedEventIndex: number | null;
selectedEventId: string | null;
selectedPublicEventId: string | null;
nextEventId: string | null;
nextPublicEventId: string | null;
selectedEventIndex: MaybeNumber;
};
@@ -1,20 +1,19 @@
import { Playback } from './Playback.type.js';
import { MessageState } from './MessageControl.type.js';
import { TimerState } from './TimerState.type.js';
import { Runtime } from './Runtime.type.js';
import { OntimeEvent } from '../core/OntimeEvent.type.js';
export type RuntimeStore = {
// timer service
// timer data
clock: number;
timer: TimerState;
playback: Playback;
onAir: boolean;
// messages service
message: MessageState;
onAir: boolean;
// event loader
loaded: Runtime;
// rundown data
runtime: Runtime;
eventNow: OntimeEvent | null;
publicEventNow: OntimeEvent | null;
eventNext: OntimeEvent | null;
@@ -1,18 +1,14 @@
import { TimerType } from '../TimerType.type.js';
import { EndAction } from '../EndAction.type.js';
import { MaybeNumber } from '../../index.js';
import { Playback } from './Playback.type.js';
export type TimerState = {
clock: number; // realtime clock
current: number | null; // running countdown
elapsed: number | null; // elapsed time in current timer
expectedFinish: number | null;
addedTime: number; // time added by user, can be negative
startedAt: number | null;
finishedAt: number | null; // only if timer has already finished
secondaryTimer: number | null; // used for roll mode
duration: number | null;
timerType: TimerType | null;
endAction: EndAction | null;
timeWarning: number | null;
timeDanger: number | null;
current: MaybeNumber; // running countdown
duration: MaybeNumber; // normalised duration of current event
elapsed: MaybeNumber; // elapsed time in current timer
expectedFinish: MaybeNumber; // time we expect timer to finish
finishedAt: MaybeNumber; // only if timer has already finished
playback: Playback;
secondaryTimer: MaybeNumber; // used for roll mode
startedAt: MaybeNumber; // only if timer has already started
};