aboutsummaryrefslogtreecommitdiff
path: root/mavigator-cockpit/src/main/scala/mavigator/dashboard/RxUtil.scala
diff options
context:
space:
mode:
Diffstat (limited to 'mavigator-cockpit/src/main/scala/mavigator/dashboard/RxUtil.scala')
-rw-r--r--mavigator-cockpit/src/main/scala/mavigator/dashboard/RxUtil.scala70
1 files changed, 0 insertions, 70 deletions
diff --git a/mavigator-cockpit/src/main/scala/mavigator/dashboard/RxUtil.scala b/mavigator-cockpit/src/main/scala/mavigator/dashboard/RxUtil.scala
deleted file mode 100644
index 2637ddf..0000000
--- a/mavigator-cockpit/src/main/scala/mavigator/dashboard/RxUtil.scala
+++ /dev/null
@@ -1,70 +0,0 @@
-package mavigator.dashboard
-
-import scala.language.implicitConversions
-import scala.util.Failure
-import scala.util.Success
-
-import org.scalajs.dom.html
-
-import rx.Obs
-import rx.Rx
-import rx.Rx
-import rx.Var
-import rx.Var
-import scalatags.JsDom.all.Frag
-import scalatags.JsDom.all.HtmlTag
-import scalatags.JsDom.all.backgroundColor
-import scalatags.JsDom.all.bindNode
-import scalatags.JsDom.all.span
-import scalatags.JsDom.all.stringFrag
-import scalatags.JsDom.all.stringStyle
-
-package object rxutil {
-
- /** Rx, implicitly enhanced with additional methods. */
- implicit class RichRx(val rx: Rx[_]) extends AnyVal {
-
- /**
- * Builds a new Rx by applying a partial function to all values of
- * this Rx on which the function is defined.
- * @param initial initial value of the returned Rx
- * @param pf the partial function which filters and maps this Rx
- * @return a new Rx resulting from applying the given partial
- * function pf to each value on which it is defined and collecting
- * the result
- */
- def collect[B](initial: B)(pf: PartialFunction[Any, B]): Rx[B] = {
- val result: Var[B] = Var(initial)
- Obs(rx, skipInitial = true) {
- if (pf.isDefinedAt(rx())) {
- result() = pf(rx())
- }
- }
- result
- }
-
- }
-
- /**
- * Copied from https://github.com/lihaoyi/workbench-example-app/blob/todomvc/src/main/scala/example/Framework.scala
- *
- * Sticks some Rx into a Scalatags fragment, which means hooking up an Obs
- * to propagate changes into the DOM via the element's ID. Monkey-patches
- * the Obs onto the element itself so we have a reference to kill it when
- * the element leaves the DOM (e.g. it gets deleted).
- */
- implicit def rxMod[T <: html.Element](r: Rx[HtmlTag]): Frag = {
- def rSafe = r.toTry match {
- case Success(v) => v.render
- case Failure(e) => span(e.toString, backgroundColor := "red").render
- }
- var last = rSafe
- Obs(r, skipInitial = true) {
- val newLast = rSafe
- last.parentElement.replaceChild(newLast, last)
- last = newLast
- }
- bindNode(last)
- }
-
-}