package com.weEat.modules import mhtml.{Rx,Var} case class PageSelect( numPages: Rx[Int], revealedRadius: Rx[Int] = Rx(3) ) extends Module { private val _page = Var[Int](1) // TODO: Add buttons for First/Last page // TODO: Allow the user to click on `...` to temporarily expand the upper or // lower reveal boundary private val _minRevealed = _page.zip(revealedRadius).map({ case (p, r) => 1.max(p - r) }) private val _maxRevealed = _page.zip(revealedRadius).zip(numPages).map({ case ((p, r), n) => n.min(p + r) }) val page = _page.zip(numPages).map({ case (idx, pages) => idx.min(pages) - 1 }) private def idxToString(targIdx: Int, str: String) = _page.map({page: Int => if (page == targIdx) str else ""}) val render = { } }