You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.2 KiB
109 lines
3.2 KiB
package outwatchapp
|
|
import monix.bio.Task
|
|
import outwatch._
|
|
import outwatch.dsl._
|
|
import outwatch.router.AppRouter
|
|
import outwatch.router._
|
|
import outwatch.router.dsl._
|
|
|
|
import Page._
|
|
|
|
object Router {
|
|
val router = AppRouter.create[Task, Page](NotFound) {
|
|
case Root => Home
|
|
case Root / "user" / IntVar(id) => UserHome(id)
|
|
case Root / "some-page" => SomePage
|
|
}
|
|
|
|
def apply(resolver: PartialFunction[Page, VDomModifier])(implicit
|
|
store: RouterStore[Page]
|
|
) = div(
|
|
htmlTag("nav")(
|
|
cls := "navbar navbar-expand-lg bg-primary ",
|
|
attr("color-on-scroll") := "100",
|
|
div(
|
|
cls := "container",
|
|
div(
|
|
cls := "navbar-translate",
|
|
a(
|
|
cls := "navbar-brand",
|
|
href := "#",
|
|
rel := "tooltip",
|
|
title := "",
|
|
attr("data-placement") := "bottom",
|
|
target := "_blank",
|
|
div("OutwatchApp")
|
|
),
|
|
button(
|
|
cls := "navbar-toggler navbar-toggler toggled collapsed",
|
|
attr("data-toggle") := "collapse",
|
|
attr("data-target") := "#navigation",
|
|
attr("aria-controls") := "navigation-index",
|
|
attr("aria-expanded") := "false",
|
|
attr("aria-label") := "Toggle navigation",
|
|
div(cls := "navbar-toggler-bar bar1"),
|
|
div(cls := "navbar-toggler-bar bar2"),
|
|
div(cls := "navbar-toggler-bar bar3")
|
|
)
|
|
),
|
|
div(
|
|
cls := "navbar-collapse justify-content-end collapse",
|
|
idAttr := "navigation",
|
|
div(
|
|
cls := "navbar-collapse-header",
|
|
div(
|
|
cls := "row",
|
|
div(
|
|
cls := "col-6 collapse-brand",
|
|
a("BLK•")
|
|
),
|
|
div(
|
|
cls := "col-6 collapse-close text-right",
|
|
button(
|
|
tpe := "button",
|
|
cls := "navbar-toggler collapsed",
|
|
attr("data-toggle") := "collapse",
|
|
attr("data-target") := "#navigation",
|
|
attr("aria-controls") := "navigation-index",
|
|
attr("aria-expanded") := "false",
|
|
attr("aria-label") := "Toggle navigation",
|
|
i(cls := "tim-icons icon-simple-remove")
|
|
)
|
|
)
|
|
)
|
|
),
|
|
ul(
|
|
cls := "navbar-nav",
|
|
li(
|
|
cls := "nav-item active",
|
|
router.link("/")(
|
|
cls := "nav-link",
|
|
"Home",
|
|
div(cls := "sr-only", "(current)")
|
|
)
|
|
),
|
|
li(
|
|
cls := "nav-item",
|
|
router
|
|
.link("/some-page")(cls := "nav-link", "SomePage")
|
|
),
|
|
li(
|
|
cls := "nav-item",
|
|
router.link("/user/1")(cls := "nav-link", "User Home")
|
|
),
|
|
li(
|
|
cls := "nav-item",
|
|
router.link("/todomvc")(cls := "nav-link", "TodoMvc")
|
|
)
|
|
)
|
|
)
|
|
)
|
|
),
|
|
div(
|
|
cls := "container",
|
|
router.render(resolver),
|
|
router.watch()
|
|
)
|
|
)
|
|
|
|
}
|