Skip to content

Commit

Permalink
Anemic Renderer
Browse files Browse the repository at this point in the history
  • Loading branch information
davesmith00000 committed Mar 30, 2024
1 parent 7fc06e1 commit f297cb7
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 17 deletions.
17 changes: 1 addition & 16 deletions tyrian/js/src/main/scala/tyrian/runtime/Renderer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,8 @@ import cats.effect.kernel.Async
import cats.effect.kernel.Ref
import cats.effect.syntax.all.*
import snabbdom.VNode
import tyrian.Html
import tyrian.Location

final case class Renderer(vnode: VNode, state: RendererState, lastTriggered: Long):

def redraw[Model, Msg](
time: Long,
model: Model,
view: Model => Html[Msg],
onMsg: Msg => Unit,
router: Location => Msg
): Renderer =
this.copy(
vnode = Rendering.render(vnode, model, view, onMsg, router), // TODO: Replace
state = RendererState.Running,
lastTriggered = time
)
final case class Renderer(vnode: VNode, state: RendererState, lastTriggered: Long)

object Renderer:

Expand Down
11 changes: 10 additions & 1 deletion tyrian/js/src/main/scala/tyrian/runtime/TyrianRuntime.scala
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,18 @@ object TyrianRuntime:
}

_ <- runCmd(cmdsAndSubs._1) *> runSub(cmdsAndSubs._2)

m <- model.get

t <- clock.realTime.map(_.toMillis)
_ <- renderer.update(_.redraw(t, m, view, onMsg, router))

_ <- renderer.update { r =>
r.copy(
vnode = Rendering.render(r.vnode, m, view, onMsg, router),
state = RendererState.Running,
lastTriggered = t
)
}
} yield ()
}.foreverM

Expand Down

0 comments on commit f297cb7

Please sign in to comment.