diff --git a/packages/webui/src/client/ui/App.tsx b/packages/webui/src/client/ui/App.tsx index 218a502058..33b2d3713e 100644 --- a/packages/webui/src/client/ui/App.tsx +++ b/packages/webui/src/client/ui/App.tsx @@ -159,7 +159,8 @@ export const App: React.FC = function App() { - + {/* The ClockView index should show heders. Any pages inside should not */} + ): JSX.Element { useSubscription(MeteorPubSub.rundownPlaylistForStudio, studioId, true) @@ -29,7 +31,7 @@ export function ClockView({ studioId }: Readonly<{ studioId: StudioId }>): JSX.E return ( - + {playlist ? ( @@ -38,7 +40,7 @@ export function ClockView({ studioId }: Readonly<{ studioId: StudioId }>): JSX.E )} - + {playlist ? ( @@ -47,7 +49,7 @@ export function ClockView({ studioId }: Readonly<{ studioId: StudioId }>): JSX.E )} - + {playlist ? ( @@ -56,13 +58,19 @@ export function ClockView({ studioId }: Readonly<{ studioId: StudioId }>): JSX.E )} - + - - + + + + + + + +
404 - Page not found
) diff --git a/packages/webui/src/client/ui/ClockView/ClockViewIndex.tsx b/packages/webui/src/client/ui/ClockView/ClockViewIndex.tsx new file mode 100644 index 0000000000..509bc9a2d6 --- /dev/null +++ b/packages/webui/src/client/ui/ClockView/ClockViewIndex.tsx @@ -0,0 +1,45 @@ +import { Link } from 'react-router-dom' +import { useTranslation } from 'react-i18next' +import { StudioId } from '@sofie-automation/corelib/dist/dataModel/Ids' +import Container from 'react-bootstrap/esm/Container' + +export function ClockViewIndex({ studioId }: Readonly<{ studioId: StudioId }>): JSX.Element { + const { t } = useTranslation() + + return ( + +
+
+

{t('Available Screens for Studio {{studioId}}', { studioId })}

+
+
+
    +
  • + {t('Presenter Screen')} +
  • +
  • + {t('Director Screen')} +
  • +
  • + {t('Overlay Screen')} +
  • +
  • + {t('Camera Screen')} +
  • +
  • + {t('Prompter Screen')} +
  • +
  • + {t('All Screens in a MultiViewer')} +
  • +
+
    +
  • + {t('Active Rundown View')} +
  • +
+
+
+
+ ) +} diff --git a/packages/webui/src/client/ui/ClockView/MultiviewScreen.scss b/packages/webui/src/client/ui/ClockView/MultiviewScreen.scss new file mode 100644 index 0000000000..8c6403d3ef --- /dev/null +++ b/packages/webui/src/client/ui/ClockView/MultiviewScreen.scss @@ -0,0 +1,56 @@ +.multiview-grid { + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr; + grid-template-rows: 1fr 1fr 1fr 1fr; + gap: 10px; + height: 100vh; + width: 100vw; + padding: 10px; + box-sizing: border-box; + background: black; +} + +.multiview-item { + display: flex; + flex-direction: column; + border: 2px solid #cc0; + + iframe { + flex: 1; + width: 100%; + border: none; + background: repeating-conic-gradient(#ddd 0% 25%, #eee 0% 50%) 50% / 40px 40px; + } +} + +.multiview-label { + padding: 8px; + text-align: center; + background-color: #f0f0f0; + font-weight: bold; +} + +.multiview-presenter { + grid-column: 1 / 3; + grid-row: 1 / 3; +} + +.multiview-director { + grid-column: 3 / 5; + grid-row: 1 / 3; +} + +.multiview-prompter { + grid-column: 1 / 3; + grid-row: 3 / 5; +} + +.multiview-overlay { + grid-column: 3 / 5; + grid-row: 3 / 4; +} + +.multiview-camera { + grid-column: 3 / 5; + grid-row: 4 / 5; +} diff --git a/packages/webui/src/client/ui/ClockView/MultiviewScreen.tsx b/packages/webui/src/client/ui/ClockView/MultiviewScreen.tsx new file mode 100644 index 0000000000..477f93c15c --- /dev/null +++ b/packages/webui/src/client/ui/ClockView/MultiviewScreen.tsx @@ -0,0 +1,33 @@ +import { StudioId } from '@sofie-automation/corelib/dist/dataModel/Ids' +import './MultiviewScreen.scss' + +interface MultiviewScreenProps { + studioId: StudioId +} + +export function MultiviewScreen({ studioId }: Readonly): JSX.Element { + return ( +
+
+