All Downloads are FREE. Search and download functionalities are using the official Maven repository.

japgolly.scalajs.react.facade.ReactDOMClient.scala Maven / Gradle / Ivy

There is a newer version: 3.0.0-beta10
Show newest version
package japgolly.scalajs.react.facade

import org.scalajs.dom
import scala.annotation.nowarn
import scala.scalajs.js
import scala.scalajs.js.annotation._
import scala.scalajs.js.|

@JSImport("react-dom/client", JSImport.Namespace, "ReactDOM")
@js.native
object ReactDOMClient extends ReactDOMClient

@js.native
@nowarn("cat=unused")
trait ReactDOMClient extends js.Object {
  final type HydrationContainer = dom.Element | dom.Document
  final type RootContainer      = dom.Element | dom.DocumentFragment

  /** Create a React root for the supplied container and return the root. The root can be used to render a React element into the DOM with `.render`. */
  final def createRoot(container: RootContainer, options: CreateRootOptions = js.native): RootType = js.native

  /** Same as createRoot(), but is used to hydrate a container whose HTML contents were rendered by ReactDOMServer. React will attempt to attach event listeners to the existing markup. */
  final def hydrateRoot(container: HydrationContainer, element: React.Node, options: HydrateRootOptions = js.native): RootType = js.native
}

@js.native
@nowarn("cat=unused")
trait RootType extends js.Object {
  def render(element: React.Node): Unit = js.native
  def unmount(): Unit = js.native
}

@js.native
trait CreateRootOptions extends js.Object {
  var identifierPrefix                   : js.UndefOr[String]
  var onRecoverableError                 : js.UndefOr[Any => Unit]
  var unstable_concurrentUpdatesByDefault: js.UndefOr[Boolean]
  var unstable_strictMode                : js.UndefOr[Boolean]
  // var transitionCallbacks                : js.UndefOr[TransitionTracingCallbacks]
}

@js.native
trait HydrateRootOptions extends js.Object {
  var identifierPrefix                   : js.UndefOr[String]
  var onRecoverableError                 : js.UndefOr[Any => Unit]
  var unstable_concurrentUpdatesByDefault: js.UndefOr[Boolean]
  var unstable_strictMode                : js.UndefOr[Boolean]
  // var hydratedSources                    : js.UndefOr[Array[MutableSource[any]]]
  // var onHydrated                         : js.UndefOr[Comment => Unit]
  // var onDeleted                          : js.UndefOr[Comment => Unit]
}

// @js.native
// trait RecoverableError extends js.Object {
//   val message: String
// }

// @js.native
// trait TransitionTracingCallbacks extends js.Object {
//   var onMarkerComplete      : js.UndefOr[(String, String, Double, Double) => Unit]
//   var onMarkerIncomplete    : js.UndefOr[(String, String, Double, Array[Deletions]) => Unit]
//   var onMarkerProgress      : js.UndefOr[(String, String, Double, Double, Array[HasName]) => Unit]
//   var onTransitionComplete  : js.UndefOr[(String, Double, Double) => Unit]
//   var onTransitionIncomplete: js.UndefOr[(String, Double, Array[Deletions]) => Unit]
//   var onTransitionProgress  : js.UndefOr[(String, Double, Double, Array[HasName]) => Unit]
//   var onTransitionStart     : js.UndefOr[(String, Double) => Unit]
// }

// @js.native
// trait HasName extends js.Object {
//   val name: String
// }

// @js.native
// trait Deletions extends js.Object {
//   val `type`: String
//   val name: js.UndefOr[String]
//   val newName: js.UndefOr[String]
//   val endTime: Double
// }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy