@(s: lila.study.Study, data: lila.study.JsonView.JsData, chatOption: Option[lila.chat.UserChat.Mine], socketVersion: Int, streams: List[lila.streamer.Stream])(implicit ctx: Context) @moreJs = { @jsAt(s"compiled/lichess.analyse${isProd??(".min")}.js") @embedJs { lichess = lichess || {}; lichess.study = { study: @safeJson(data.study), data: @safeJson(data.analysis), i18n: @board.userAnalysisI18n(), tagTypes: '@lila.study.PgnTags.typesToString', userId: @jsUserId, chat: @jsOrNull(chatOption map { c => chat.ChatJsData.json( c.chat, name = trans.chatRoom.txt(), timeout = c.timeout, writeable = ctx.userId.??(s.canChat), public = false, localMod = ctx.userId.??(s.canContribute)) }), explorer: { endpoint: "@explorerEndpoint", tablebaseEndpoint: "@tablebaseEndpoint" }, socketUrl: "@routes.Study.websocket(s.id.value, apiVersion.value)", socketVersion: @socketVersion }; } } @moreCss = { @cssTag("analyse.css") @cssTag("study.css") @cssTag("chat.css") } @side = { @streams.map { s => @usernameOrId(s.streamer.userId) is streaming } } @base.layout( title = s.name.value, side = side.some, chat = chat.dom().some, underchat = views.html.game.watchers().some, moreCss = moreCss, moreJs = moreJs, robots = s.isPublic, chessground = false, zoomable = true) {
@board.domPreload(none)
}