Advertisement
Guest User

Untitled

a guest
Dec 17th, 2020
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.94 KB | None | 0 0
  1. implicit val backend = FetchMonixBackend()
  2.  
  3.   val handlerTask = Handler.createF[Task, String]("empty")
  4.  
  5.   // val consumer: Consumer.Sync[Task[String], HtmlVNode] =
  6.   //   Consumer.foldLeft(ul()) { (ul, tStr: Task[String]) =>
  7.   //     ul.append(tStr.runToFuture)
  8.   //   }
  9.  
  10.   def toIO[T](task: monix.eval.Task[T]) =
  11.     IO.deferAction(implicit s => IO.from(task))
  12.  
  13.   def toTask[T](bio: monix.bio.IO[Throwable, T]) =
  14.     monix.eval.Task.deferAction(implicit s => bio.to[monix.eval.Task])
  15.  
  16.   def request(query: String) = basicRequest
  17.     .get(uri"https://jsonplaceholder.typicode.com/todos/1")
  18.     .send()
  19.     .flatMap { r =>
  20.       r.body match {
  21.         case Right(value) =>
  22. //                Console.out.println(value)
  23.           me.Task(println(value)) >>
  24.             me.Task(value)
  25.         case Left(error) =>
  26.           me.Task(println(error)) >>
  27.             me.Task(error)
  28.       }
  29.     };
  30.   val component = Task.deferAction(implicit s =>
  31.     for {
  32.       handler <- handlerTask
  33.       res <- Task(
  34.         div(
  35.           "input",
  36.           input(
  37.             typ := "text",
  38.             onInput.value --> handler
  39.           ),
  40.           div(
  41.             handler
  42.               .doOnNext(str => me.Task(println(str)))
  43.               .mapEval(query => (request(query)))
  44.               .map(_ => div("hello"))
  45.           )
  46.         )
  47.       )
  48.     } yield res
  49.   )
  50.  
  51. // later on
  52.  OutWatch
  53.           .renderInto(
  54.             el,
  55.             div(
  56.               div(
  57.                 cls := "four wide column",
  58.                 ul(
  59.                   li(router.link("/")("Home")),
  60.                   li(router.link("/some-page")("SomePage")),
  61.                   li(router.link("/user/0")("User Home")),
  62.                   li(router.link("/todomvc")("TodoMvc"))
  63.                 )
  64.               ),
  65.               counterComponent,
  66.               router.render(resolver),
  67.               router.watch(),
  68.               component
  69.             )
  70.           )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement