Add "push" JS command

This commit is contained in:
Paul-Henri Froidmont 2025-09-18 01:27:38 +02:00
parent 66c2ac5d71
commit aaea4f487b
Signed by: phfroidmont
GPG key ID: BE948AFD7E7873BE
2 changed files with 22 additions and 2 deletions

View file

@ -100,7 +100,21 @@ object JSCommands:
def popFocus() =
ops.addOp("pop_focus", Json.Obj.empty)
def push() = ???
def push[A: JsonEncoder](
event: A,
target: String = "",
loading: String = "",
pageLoading: Boolean = false
) =
ops.addOp(
"push",
Args.Push(
event.toJson,
Option.when(target.nonEmpty)(target),
Option.when(loading.nonEmpty)(loading),
Option.when(!pageLoading)(pageLoading)
)
)
def pushFocus(to: String = "") =
ops.addOp("push_focus", Args.To(Option.when(to.nonEmpty)(to)))
@ -257,6 +271,12 @@ object JSCommands:
time: Option[Int],
blocking: Option[Boolean])
derives JsonEncoder
final case class Push(
event: String,
target: Option[String],
loading: Option[String],
pageLoading: Option[Boolean])
derives JsonEncoder
end Args
end JSCommands