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") ) ) ) ) ) ) ) ) ) }