Skip to content

Instantly share code, notes, and snippets.

@elyphas
Created September 21, 2019 22:00
Show Gist options
  • Save elyphas/791c1690d474c92855def43c30c43463 to your computer and use it in GitHub Desktop.
Save elyphas/791c1690d474c92855def43c30c43463 to your computer and use it in GitHub Desktop.
object Menu {
trait Page
case object Pedido extends Page
case object Comparativo extends Page
case object Home extends Page
case object Notfound extends Page
case object Help extends Page
val hashRouter = Handler.create[Page](Home).unsafeRunSync()
def renderRouter = hashRouter map {
case Pedido =>
val frm = new FrmPedido
frm.render
case Comparativo =>
val frm = new FrmComparativo
frm.render
case Home =>
Observable(
div ( clear.both,
h3 ( "Inicio" ),
div("Bienvenido al sitio ! :)")
))
case Help => Observable(div("Ayuda!!"))
case Notfound => Observable(div("No hay nada aqui, nuevo menu!!"))
}
def click(p: Page) = onClick.mapTo(hashRouter.onNext(p)) --> SinkObserver.empty
def menuItem(txt: String, p: Page) = div(li(txt, cls := "itemMenuDropDown", click(p)))
def subMenu(txt: String, items: Map[String, Page]) =
li( txt, cls := "menuDropDown",
div( cls := "menuDropDown2",
items.map { case (k, v) => menuItem(k, v) }.toSeq
)
)
def render =
div( clear.both,
div( clear.both, id:="mainMenu", //width := "2000px",
ul(
menuItem("Home", Home),
subMenu("Adq", Map( "Pedido"-> Pedido, "Comparativo" -> Comparativo)),
menuItem("Ayuda", Help)
),
),
div(clear.both, marginTop := "50px", cls := "twelve wide fluid column", renderRouter)
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment