app/slices/FlexibleContainer.scala (33 lines of code) (raw):
package slices
import com.gu.facia.client.models.CollectionConfigJson
trait FlexibleContainer {
def storiesVisible(
stories: Seq[Story],
collectionConfigJson: Option[CollectionConfigJson]
): Int
}
object FlexibleGeneral extends FlexibleContainer {
def storiesVisible(
stories: Seq[Story],
collectionConfigJson: Option[CollectionConfigJson]
): Int = {
val totalMaxItems = collectionConfigJson.get.groupsConfig
.getOrElse(Nil)
.flatMap(_.maxItems)
.sum
totalMaxItems
}
}
object FlexibleSpecial extends FlexibleContainer {
def storiesVisible(
stories: Seq[Story],
collectionConfigJson: Option[CollectionConfigJson]
): Int = {
val byGroup = Story.segmentByGroup(stories)
val snap = byGroup.getOrElse(3, Seq.empty) ++
byGroup.getOrElse(2, Seq.empty) ++
byGroup.getOrElse(1, Seq.empty)
val standardCards = byGroup.getOrElse(0, Seq.empty)
snap.size + (standardCards.size min 5)
}
}