common/app/layout/slices/FlexibleSpecial.scala (27 lines of code) (raw):
package layout.slices
import layout.slices.Story._
object FlexibleSpecial extends FlexibleContainer {
override protected def optionalFirstSlice(stories: Seq[Story]): Option[(Slice, Seq[Story])] = {
val byGroup = segmentByGroup(stories)
val snap = byGroup.getOrElse(1, Seq.empty)
if (snap.nonEmpty) {
Some((FullMedia50, stories.drop(1)))
} else {
None
}
}
override protected def standardSlices(
storiesIncludingBackfill: Seq[Story],
firstSlice: Option[Slice],
): Seq[Slice] = {
storiesIncludingBackfill.length match {
case 0 => Nil
case 1 => Seq(FullMedia100)
case 2 => Seq(ThreeQuarterQuarter)
case 3 => Seq(ThreeQuarterTallQuarter2)
case 4 => Seq(ThreeQuarterTallQuarter1Ql2)
case 5 => Seq(FullMedia100, QuarterQuarterQuarterQuarter)
/* We dont support more than 5 slices in a flexible special so if there are more than 5 we only render the 5 layout*/
case _ => Seq(FullMedia100, QuarterQuarterQuarterQuarter)
}
}
}