File tree Expand file tree Collapse file tree 4 files changed +96
-0
lines changed
packages/webui/src/client/ui/ClockView Expand file tree Collapse file tree 4 files changed +96
-0
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ import { CameraScreen } from './CameraScreen/index.js'
1414import { MeteorPubSub } from '@sofie-automation/meteor-lib/dist/api/pubsub'
1515import { useTranslation } from 'react-i18next'
1616import { ClockViewIndex } from './ClockViewIndex.js'
17+ import { MultiviewScreen } from './MultiviewScreen.js'
1718
1819export function ClockView ( { studioId } : Readonly < { studioId : StudioId } > ) : JSX . Element {
1920 useSubscription ( MeteorPubSub . rundownPlaylistForStudio , studioId , true )
@@ -62,6 +63,9 @@ export function ClockView({ studioId }: Readonly<{ studioId: StudioId }>): JSX.E
6263 < CameraScreen playlist = { playlist } studioId = { studioId } />
6364 </ RundownTimingProvider >
6465 </ Route >
66+ < Route path = "/countdowns/:studioId/multiview" >
67+ < MultiviewScreen studioId = { studioId } />
68+ </ Route >
6569 < Route path = "/countdowns/:studioId" >
6670 < ClockViewIndex studioId = { studioId } />
6771 </ Route >
Original file line number Diff line number Diff line change @@ -32,6 +32,9 @@ export function ClockViewIndex({ studioId }: Readonly<{ studioId: StudioId }>):
3232 < li >
3333 < Link to = { `/activeRundown/${ studioId } ` } > { t ( 'Active Rundown' ) } </ Link >
3434 </ li >
35+ < li >
36+ < Link to = { `/countdowns/${ studioId } /multiview` } > { t ( 'Multiview (All Screens)' ) } </ Link >
37+ </ li >
3538 </ ul >
3639 </ section >
3740 </ section >
Original file line number Diff line number Diff line change 1+ .multiview-grid {
2+ display : grid ;
3+ grid-template-columns : 1fr 1fr 1fr 1fr ;
4+ grid-template-rows : 1fr 1fr 1fr 1fr ;
5+ gap : 10px ;
6+ height : 100vh ;
7+ width : 100vw ;
8+ padding : 10px ;
9+ box-sizing : border-box ;
10+ background : black ;
11+ }
12+
13+ .multiview-item {
14+ display : flex ;
15+ flex-direction : column ;
16+ border : 2px solid #cc0 ;
17+
18+ iframe {
19+ flex : 1 ;
20+ width : 100% ;
21+ border : none ;
22+ background : repeating-conic-gradient (#ddd 0% 25% , #eee 0% 50% ) 50% / 40px 40px ;
23+ }
24+ }
25+
26+ .multiview-label {
27+ padding : 8px ;
28+ text-align : center ;
29+ background-color : #f0f0f0 ;
30+ font-weight : bold ;
31+ }
32+
33+ .multiview-presenter {
34+ grid-column : 1 / 3 ;
35+ grid-row : 1 / 3 ;
36+ }
37+
38+ .multiview-director {
39+ grid-column : 3 / 5 ;
40+ grid-row : 1 / 3 ;
41+ }
42+
43+ .multiview-prompter {
44+ grid-column : 1 / 3 ;
45+ grid-row : 3 / 5 ;
46+ }
47+
48+ .multiview-overlay {
49+ grid-column : 3 / 5 ;
50+ grid-row : 3 / 4 ;
51+ }
52+
53+ .multiview-camera {
54+ grid-column : 3 / 5 ;
55+ grid-row : 4 / 5 ;
56+ }
Original file line number Diff line number Diff line change 1+ import { StudioId } from '@sofie-automation/corelib/dist/dataModel/Ids'
2+ import './MultiviewScreen.scss'
3+
4+ interface MultiviewScreenProps {
5+ studioId : StudioId
6+ }
7+
8+ export function MultiviewScreen ( { studioId } : Readonly < MultiviewScreenProps > ) : JSX . Element {
9+ return (
10+ < div className = "multiview-grid" >
11+ < div className = "multiview-item multiview-presenter" >
12+ < iframe src = { `/countdowns/${ studioId } /presenter` } title = "Presenter Screen" />
13+ < div className = "multiview-label" > Presenter Screen</ div >
14+ </ div >
15+ < div className = "multiview-item multiview-director" >
16+ < iframe src = { `/countdowns/${ studioId } /director` } title = "Director Screen" />
17+ < div className = "multiview-label" > Director Screen</ div >
18+ </ div >
19+ < div className = "multiview-item multiview-prompter" >
20+ < iframe src = { `/prompter/${ studioId } ` } title = "Prompter" />
21+ < div className = "multiview-label" > Prompter</ div >
22+ </ div >
23+ < div className = "multiview-item multiview-overlay" >
24+ < iframe src = { `/countdowns/${ studioId } /overlay` } title = "Overlay Screen" />
25+ < div className = "multiview-label" > Overlay Screen</ div >
26+ </ div >
27+ < div className = "multiview-item multiview-camera" >
28+ < iframe src = { `/countdowns/${ studioId } /camera` } title = "Camera Screen" />
29+ < div className = "multiview-label" > Camera Screen</ div >
30+ </ div >
31+ </ div >
32+ )
33+ }
You can’t perform that action at this time.
0 commit comments