refactor: extract countdown data to hook

This commit is contained in:
Carlos Valente
2025-07-24 06:17:19 +02:00
committed by Carlos Valente
parent 20ee391525
commit f23adfa45c
6 changed files with 119 additions and 82 deletions
@@ -0,0 +1,38 @@
import { CustomFields, OntimeEntry, ProjectData, Settings } from 'ontime-types';
import useCustomFields from '../../common/hooks-query/useCustomFields';
import useProjectData from '../../common/hooks-query/useProjectData';
import { useFlatRundown } from '../../common/hooks-query/useRundown';
import useSettings from '../../common/hooks-query/useSettings';
import { useViewOptionsStore } from '../../common/stores/viewOptions';
import { aggregateQueryStatus, ViewData } from '../utils/viewLoader.utils';
export interface CountdownData {
customFields: CustomFields;
events: OntimeEntry[];
projectData: ProjectData;
isMirrored: boolean;
settings: Settings;
}
export function useCountdownData(): ViewData<CountdownData> {
// persisted app state
const isMirrored = useViewOptionsStore((state) => state.mirror);
// HTTP API data
const { data: rundownData, status: rundownStatus } = useFlatRundown();
const { data: projectData, status: projectDataStatus } = useProjectData();
const { data: settings, status: settingsStatus } = useSettings();
const { data: customFields, status: customFieldsStatus } = useCustomFields();
return {
data: {
customFields,
events: rundownData,
projectData,
isMirrored,
settings,
},
status: aggregateQueryStatus([rundownStatus, projectDataStatus, settingsStatus, customFieldsStatus]),
};
}