Current section
Files
Jump to
Current section
Files
src/redraw/dom/client.ffi.mjs
import ReactDOM from "react-dom/client"
import * as $gleam from "../../gleam.mjs"
import * as $dom from "../dom.mjs"
export function createRoot(value) {
const node = document.getElementById(value)
if (!node) return $gleam.Result$Error($dom.Error$InvalidRoot(value))
const root = ReactDOM.createRoot(node)
return $gleam.Result$Ok(root)
}
export function virtualRoot() {
const value = document.createElement("div")
const root = ReactDOM.createRoot(value)
return [value, root]
}
export function hydrateRoot(value, content) {
const node = document.getElementById(value)
if (!node) return $gleam.Result$Error($dom.Error$InvalidRoot(value))
const hydration = ReactDOM.hydrateRoot(node, content)
return $gleam.Result$Ok(hydration)
}
export function render(root, children) {
return root.render(children)
}
export function unmount(root) {
return root.unmount()
}