jam-cloud/web/app/assets/javascripts/client_init.js.coffee

61 lines
1.8 KiB
CoffeeScript

# one time init stuff for the /client view
$ = jQuery
context = window
context.JK ||= {};
logger = context.JK.logger
context.JK.ClientInit = class ClientInit
constructor: () ->
@gearUtils = context.JK.GearUtils
@ALERT_NAMES = context.JK.ALERT_NAMES;
@lastCheckedBroadcast = null
# init: () =>
# if context.gon.isNativeClient
# this.nativeClientInit()
# context.JK.onBackendEvent(@ALERT_NAMES.WINDOW_OPEN_FOREGROUND_MODE, 'client_init', @watchBroadcast);
# this.watchBroadcast()
# if context.jamClient.RegisterSessionJoinLeaveRequestCallBack?
# context.jamClient.RegisterSessionJoinLeaveRequestCallBack("SessionStore.handleJoinLeaveRequestCallback")
init: `async function(){
if (context.gon.isNativeClient) {
this.nativeClientInit();
}
context.JK.onBackendEvent(this.ALERT_NAMES.WINDOW_OPEN_FOREGROUND_MODE, 'client_init', this.watchBroadcast);
this.watchBroadcast();
//if (await context.jamClient.RegisterSessionJoinLeaveRequestCallBack != null) {
await context.jamClient.RegisterSessionJoinLeaveRequestCallBack("SessionStore.handleJoinLeaveRequestCallback");
//}
}`
checkBroadcast: () =>
promise = window.BroadcastActions.load.trigger()
if promise
promise.catch(() ->
false
)
watchBroadcast: () =>
if context.JK.currentUserId
# create a 15 second buffer to not check too fast for some reason (like the client firing multiple foreground events)
if !@lastCheckedBroadcast? || @lastCheckedBroadcast.getTime() < new Date().getTime() - 15000
@lastCheckedBroadcast = new Date()
setTimeout(@checkBroadcast, 3000)
nativeClientInit: () =>
@gearUtils.bootstrapDefaultPlaybackProfile();
context.VideoActions.checkPromptConfigureVideo()