Skip to content

Instantly share code, notes, and snippets.

View oyvindberg's full-sized avatar

Øyvind Raddum Berg oyvindberg

View GitHub Profile
import japgolly.scalajs.react.BackendScope
import japgolly.scalajs.react.extra._
import scalaz.syntax.id._
final case class CachingBackendScope[P: Reusability, S: Reusability]
(b: BackendScope[P, S]){ outer ⇒
type PropVal[O] = ReactVal[P, O]
type StateVal[O] = ReactVal[(P, S), O]
class WrapBackendScope[P, S](b: BackendScope[P, S]){
def props = CallbackTo[P](b.props)
def state = CallbackTo[S](b.state)
def both = CallbackTo[(P, S)]((b.props, b.state))
def modState(f: S => S, cb: Callback = Callback.empty): Callback =
state >>= (s => b.setState(f(s), cb))
def modStateCB(f: S => CallbackTo[S], cb: Callback = Callback.empty): Callback =
state >>= (s => b.setStateCB(f(s), cb))
package chandu0101.macros.tojs
import japgolly.scalajs.react.CallbackTo
import scala.collection.{GenMap, GenTraversableOnce}
import scala.language.experimental.macros
import scala.reflect.macros.blackbox
import scala.scalajs.js
/**
* modified version of https://github.com/wav/scala-macros/blob/master/src/main/scala/wav/common/scalajs/macros/Macros.scala
@oyvindberg
oyvindberg / linx.scala
Last active October 13, 2015 22:58
linx med shapeless
package linx
import com.olvind.stringifiers.Stringifier
import shapeless._
import scala.language.implicitConversions
object Root extends StaticLinx(Vector.empty)
sealed trait Part
case class Literal(name: String) extends Part
package buzzwords
import java.io.File
import scala.io.Source
/**
* Det er fint å bruke typer som dokumentasjon/sikkerhet, og det gjør vi her
* med disse wrapper-typene.
*
* `extends AnyVal` vil si at det er er value types - dvs at det
import java.io.File
import java.net.URL
import org.scalatest.{FunSpec, Matchers}
import unfiltered.filter.Plan
import unfiltered.jetty.Server
trait UnfilteredFixture extends FunSpec with Matchers {
private val port = unfiltered.util.Port.any
package minitest
import scala.util.{Failure, Success, Try}
trait MiniTest{
sealed trait Result
case object SuccessRes extends Result
case class FailureRes(reason: String) extends Result
case class PendingRes(reason: String) extends Result
package chandu0101.scalajs.react.components
import chandu0101.macros.tojs.JSMacro
import chandu0101.macros.tojs.JSMacro._
import japgolly.scalajs.react.{Callback, ReactElement, ReactComponentU_, React}
import scala.scalajs.js
import scala.scalajs.js.annotation.JSName
object ReactSlickComponent {

Anticipated questions

Whatsup with those version strings?

Oh yes, you've noticed the long version strings - Good! If you didn't, they look like this:

libraryDependencies ++= Seq(
  "com.olvind.scalablytyped" %%% "node" % "10.9.x-dt-20180910Z-53a4c0",
 "com.olvind.scalablytyped" %%% "rxjs" % "6.3.2-a446da"
package hello.world
import org.scalajs.dom.console
import slinky.core._
import slinky.core.annotations.react
import slinky.core.facade.Hooks._
import slinky.web.html._
import typings.reactLib.reactMod.MouseEvent
import scala.scalajs.js