UNPKG

@tycoonsystems/tycoon-modules

Version:
73 lines (70 loc) 5.52 kB
import React from 'react' import PageErrorModule from '@tycoonsystems/tycoon-modules/utility/utility/component/PageErrorModule' import { BeginStream, CurrentlyStreaming, PermissionsModule, StreamOn, StreamTitleInput, StreamMoreSettings, StreamSettings, UpcomingStreams, StreamUpdateSettings, TerminateStream, NowStreaming} from '@tycoonsystems/tycoon-modules/streaming/manager/parts' import Preview from '@tycoonsystems/tycoon-modules/streaming/watch/preview/Preview' import { Username } from '@tycoonsystems/tycoon-modules/onboarding/signin' const Module = props => { const { askEndStream, fetchBusy, currentlyStreaming, ManagerStyles, streamChecking, canStream, moreSettings, settingsHeight, moreSettingsContainerRef, handleAskEndStream, recordStream, recordStreamRef, handleSetRecordingStream } = props return ( <div className={`${ManagerStyles.container} ${props.className}`}> <PageErrorModule { ...props } /> { props._loggedIn && props._loggedIn.username ? <div className={`${ManagerStyles.settingsSectionContainer} flex gap-p5`}> <div className={`${ManagerStyles.settingContainer} ${ManagerStyles.streamingInfoContainer} ${currentlyStreaming ? `${ManagerStyles.isStreamingContainer}` : ''}`}> <div className={`spinner spinnerBig ${streamChecking ? 'opacity1 spinnerRelative' : 'opacity0 spinnerHide'}`}></div> <PermissionsModule { ...props } /> <NowStreaming { ...props } /> { currentlyStreaming ? <Preview { ...props } useWatchDataPreview={currentlyStreaming} noAds={true} /> : null } <CurrentlyStreaming { ...props } /> { canStream ? <div style={{ height: '100%' }}> <StreamOn { ...props} /> { !fetchBusy ? <div style={{ alignItems: 'center', marginBottom: '.125rem', height: 'inherit' }}> <BeginStream { ...props } /> <div> <div className={`${ManagerStyles.settingsContainer} Manager_SettingsContainer`} style={{ marginBottom: '.25rem' }}> <StreamTitleInput { ...props } /> <StreamMoreSettings { ...props} /> </div> <div className={`${ManagerStyles.moreSettingsContainer} Manager_MoreSettingsContainer ${ManagerStyles.moreSettingsClosed} Manager_MoreSettingsContainerClosed ${moreSettings ? `${ManagerStyles.moreSettingsOpen} Manager_MoreSettingsContainerOpen` : ``}`} ref={moreSettingsContainerRef} style={{ height: settingsHeight }}> <div className={`${ManagerStyles.moreSettingsInternalContainer} Manager_MoreSettingsInternalContainer`} note='This controls height of open settings'> <StreamSettings { ...props } currentlyStreaming={currentlyStreaming} recordStream={recordStream} recordStreamRef={recordStreamRef} handleSetRecordingStream={handleSetRecordingStream} /> </div> </div> </div> <UpcomingStreams { ...props } /> </div> : <div style={{ fontSize: '.85rem' }}>Please wait...</div> } </div> : null } { currentlyStreaming ? !askEndStream ? <React.Fragment> <StreamUpdateSettings { ...props } /> <button style={{ width: '100%', marginTop: '.25rem', lineHeight: '12.5px', fontSize: '.8rem' }} onClick={handleAskEndStream}>Terminate Stream</button> </React.Fragment> : <TerminateStream { ...props } /> : null } </div> </div> : <div> <h4 style={{ marginTop: 0, padding: '0 .25rem' }}>{props._loggedIn ? !props._loggedIn.username ? 'Please register Username to begin streaming' : 'Please login to begin streaming' : null}</h4> <Username { ...props } /> </div> } </div> ) } export default Module