- {data.title && (
+ {projectData.title && (
{getLocalizedString('project.title')}
-
{data.title}
+
{projectData.title}
)}
- {data.description && (
+ {projectData.description && (
{getLocalizedString('project.description')}
-
{data.description}
+
{projectData.description}
)}
- {data.info && (
+ {projectData.info && (
{getLocalizedString('project.info')}
-
{data.info}
+
{projectData.info}
)}
- {data.url && (
+ {projectData.url && (
)}
- {data.custom.map((info, idx) => {
+ {projectData.custom.map((info, idx) => {
const hasUrl = Boolean(info.url);
return (
diff --git a/apps/client/src/views/project-info/useProjectInfoData.ts b/apps/client/src/views/project-info/useProjectInfoData.ts
new file mode 100644
index 000000000..74596324c
--- /dev/null
+++ b/apps/client/src/views/project-info/useProjectInfoData.ts
@@ -0,0 +1,26 @@
+import { ProjectData } from 'ontime-types';
+
+import useProjectData from '../../common/hooks-query/useProjectData';
+import { useViewOptionsStore } from '../../common/stores/viewOptions';
+import { ViewData } from '../utils/viewLoader.utils';
+
+export interface ProjectInfoData {
+ projectData: ProjectData;
+ isMirrored: boolean;
+}
+
+export function useProjectInfoData(): ViewData
{
+ // persisted app state
+ const isMirrored = useViewOptionsStore((state) => state.mirror);
+
+ // HTTP API data
+ const { data: projectData, status: projectDataStatus } = useProjectData();
+
+ return {
+ data: {
+ projectData,
+ isMirrored,
+ },
+ status: projectDataStatus,
+ };
+}