def forContainerDefinition()

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: _*,
    )
  }