in common/app/views/support/GetClasses.scala [102:171]
def forContainerDefinition(containerDefinition: FaciaContainer)(implicit request: RequestHeader): String =
forContainer(
containerDefinition.showLatestUpdate,
containerDefinition.index == 0 && containerDefinition.customHeader.isEmpty,
containerDefinition.displayName.isDefined,
containerDefinition.displayName.contains("headlines"),
containerDefinition.container.toString == "Video" || containerDefinition.container.toString == "VerticalVideo",
containerDefinition.commercialOptions,
containerDefinition.hasDesktopShowMore,
Some(containerDefinition.container),
extraClasses = containerDefinition.customClasses.getOrElse(Seq.empty) ++
slices.Container.customClasses(containerDefinition.container),
disableHide = containerDefinition.hideToggle,
lazyLoad = containerDefinition.shouldLazyLoad,
dynamicSlowMpu =
containerDefinition.container == Dynamic(DynamicSlowMPU(omitMPU = false, adFree = isAdFree(request))),
)
/** TODO get rid of this when we consolidate 'all' logic with index logic */
def forTagContainer(hasTitle: Boolean, adFree: Boolean = false): String =
forContainer(
showLatestUpdate = false,
isFirst = true,
hasTitle,
isHeadlines = false,
isVideo = false,
commercialOptions = ContainerCommercialOptions(omitMPU = false, adFree = adFree),
hasDesktopShowMore = false,
container = None,
extraClasses = Nil,
disableHide = true,
lazyLoad = false,
dynamicSlowMpu = false,
)
def forContainer(
showLatestUpdate: Boolean,
isFirst: Boolean,
hasTitle: Boolean,
isHeadlines: Boolean,
isVideo: Boolean,
commercialOptions: ContainerCommercialOptions,
hasDesktopShowMore: Boolean,
container: Option[slices.Container] = None,
extraClasses: Seq[String] = Nil,
disableHide: Boolean = false,
lazyLoad: Boolean,
dynamicSlowMpu: Boolean,
): String = {
// no toggle for Headlines container as it will be hosting the weather widget instead
val showToggle =
!disableHide && !container.exists(!slices.Container.showToggle(_)) && !isFirst && hasTitle && !isHeadlines
RenderClasses(
(Seq(
("fc-container", true),
("fc-container--first", isFirst),
("fc-container--has-show-more", hasDesktopShowMore),
("js-container--first", isFirst),
("fc-container--video", isVideo),
("fc-container--lazy-load", lazyLoad),
("js-container--lazy-load", lazyLoad),
("fc-container--dynamic-slow-mpu", dynamicSlowMpu),
("fc-container--will-have-toggle", showToggle),
("js-container--toggle", showToggle),
) collect { case (kls, true) =>
kls
}) ++ extraClasses: _*,
)
}