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.
64 lines
1.7 KiB
64 lines
1.7 KiB
package outwatchapp.pages
|
|
import cats.syntax.eq._
|
|
import com.softwaremill.tagging._
|
|
import monix.bio.Task
|
|
import outwatch._
|
|
import outwatch.dsl._
|
|
import outwatchapp.components.ChartjsDemo
|
|
import outwatchapp.components.CounterDemo
|
|
import outwatchapp.components.SweetAlertDemo
|
|
|
|
class HomePage(
|
|
counterDemo: VNode @@ CounterDemo,
|
|
chartDemo: VNode @@ ChartjsDemo
|
|
) {
|
|
val loginDemo = for {
|
|
res <- SweetAlertDemo.loginPrompt.map(_.value.toOption)
|
|
_ <- Task(println(s"Got $res"))
|
|
_ <-
|
|
if (res === Some("foo" -> "bar")) SweetAlertDemo.successPrompt
|
|
else SweetAlertDemo.failurePrompt
|
|
} yield ()
|
|
|
|
def render = Task.deferAction(implicit s =>
|
|
Task(
|
|
div(
|
|
div(cls := "title", "Home"),
|
|
div(
|
|
cls := "card",
|
|
div(
|
|
cls := "card-body",
|
|
counterDemo,
|
|
chartDemo,
|
|
div(
|
|
cls := "text-center",
|
|
button(
|
|
cls := "btn btn-primary",
|
|
onClick.preventDefault.doAsync(loginDemo),
|
|
"Login"
|
|
)
|
|
),
|
|
p(
|
|
cls := "text-white",
|
|
div(
|
|
"hm",
|
|
htmlTag("blockQuote")(
|
|
cls := "blockquote",
|
|
p(
|
|
cls := "mb-0",
|
|
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante."
|
|
),
|
|
footer(
|
|
cls := "blockquote-footer",
|
|
"Someone famous in ",
|
|
cite(title := "Source Title", "Source Title")
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
}
|