Skip to content
scalive
Menu
ConnectingLiveReconnectingOffline
t

LiveView

trait LiveView[Msg, Model]

Defines a server-rendered view with typed messages and model state.

A LiveView is mounted independently for the disconnected HTTP render and each connected socket lifecycle. Its immutable model is projected through a signal-backed HtmlElement, while browser bindings and managed work deliver values to handleMessage.

Type parameters

Msg

messages accepted by this view

Model

immutable state owned by one lifecycle

Defined by scalive.LiveView. View source (scalive/api/src/scalive/lifecycle/LiveView.scala:17-39)

Types3

AfterRenderContext

type AfterRenderContext = AfterRenderContext[Msg, Model]

Defined by scalive.LiveView.AfterRenderContext. View source (scalive/api/src/scalive/lifecycle/LiveView.scala:20-20)

MessageContext

type MessageContext = MessageContext[Msg, Model]

Defined by scalive.LiveView.MessageContext. View source (scalive/api/src/scalive/lifecycle/LiveView.scala:19-19)

MountContext

type MountContext = MountContext[Msg, Model]

Defined by scalive.LiveView.MountContext. View source (scalive/api/src/scalive/lifecycle/LiveView.scala:18-18)

Methods5

handleMessage

def handleMessage(model: Model, ctx: MessageContext): Msg => zio.package.Task[Model]

Handles a message against the current immutable model.

The returned function keeps message dispatch typed while sharing the model and connected capabilities captured for this lifecycle turn.

Parameters

model

current model

ctx

capabilities available while handling the message

Returns

Returns

a handler for one message

Defined by scalive.LiveView.handleMessage. View source (scalive/api/src/scalive/lifecycle/LiveView.scala:38-38)

hooks

def hooks: LiveHooks[Msg, Model]

Defined by scalive.LiveView.hooks. View source (scalive/api/src/scalive/lifecycle/LiveView.scala:22-22)

mount

def mount(ctx: MountContext): zio.package.Task[Model]

Defined by scalive.LiveView.mount. View source (scalive/api/src/scalive/lifecycle/LiveView.scala:24-24)

pageTitle

def pageTitle(model: Model): Option[String]

Defined by scalive.LiveView.pageTitle. View source (scalive/api/src/scalive/lifecycle/LiveView.scala:23-23)

view

def view(model: Signal[Model]): HtmlElement[Msg]

Defined by scalive.LiveView.view. View source (scalive/api/src/scalive/lifecycle/LiveView.scala:39-39)