package bonsai
A library for building dynamic webapps, using Js_of_ocaml
Install
Dune Dependency
Authors
Maintainers
Sources
bonsai-v0.16.0.tar.gz
sha256=1d68aab713659951eba5b85f21d6f9382e0efa8579a02c3be65d9071c6e86303
doc/src/bonsai.test/driver.ml.html
Source file driver.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
open! Core open! Import type ('i, 'r) t = { input_var : 'i Incr.Var.t ; mutable last_view : string ; handle : 'r Bonsai_driver.t } let create (type i r) ?initial_model_sexp ?(optimize = true) ~clock ~(initial_input : i) (component : (i, r) Bonsai.Arrow_deprecated.t) : (i, r) t = let input_var, computation = let input_var = Incr.Var.create initial_input in let computation = input_var |> Incr.Var.watch |> Bonsai.Private.Value.of_incr |> Bonsai.Private.conceal_value |> component in input_var, computation in let handle = Bonsai_driver.create ?initial_model_sexp ~optimize ~clock computation in { input_var; last_view = ""; handle } ;; let set_input { input_var; _ } input = Incr.Var.set input_var input let input { input_var; _ } = Incr.Var.value input_var let last_view { last_view; _ } = last_view let store_view unpacked s = unpacked.last_view <- s let reroute f { handle; _ } = f handle include struct open Bonsai_driver let schedule_event h = reroute schedule_event h let flush h = reroute flush h let result h = reroute result h let has_after_display_events h = reroute has_after_display_events h let trigger_lifecycles h = reroute trigger_lifecycles h end include struct open Bonsai_driver.Expert let sexp_of_model h = reroute sexp_of_model h let result_incr h = reroute result_incr h let action_input_incr h = reroute action_input_incr h let lifecycle_incr h = reroute lifecycle_incr h let clock h = reroute clock h let invalidate_observers h = reroute invalidate_observers h let reset_model_to_default h = reroute reset_model_to_default h end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>