package jsoo-react
Bindings to ReactJS for js_of_ocaml, including JSX ppx
Install
Dune Dependency
Authors
Maintainers
Sources
0.1.tar.gz
sha256=93d5751c01016f5aa018b80259df0c65ac12f25152cef1dbcff024ddfc1f07b5
md5=240fd3b58cb002ff7eaa6ddddb7eba87
doc/src/jsoo-react.lib/hooks.ml.html
Source file hooks.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
let use_ref initial = let state, _ = Core.use_state (fun () -> ref initial) in state let use_ref_lazy init = let state, _ = Core.use_state (fun () -> ref (init ())) in state let use_state initial = Core.use_state (fun () -> initial) let use_state_lazy init = Core.use_state init let use_reducer = Core.use_reducer let use_resource ~on:deps ?(equal = ( = )) ?before_render ~release acquire = let last_deps = use_ref deps in let resource = use_ref None in let release () = Option.iter release !resource in let acquire () = resource := Some (acquire ()) in let init () = acquire (); Some release in let update () = if not (equal deps !last_deps) then begin last_deps := deps; release (); acquire () end; None in Core.use_effect_once ?before_render init; Core.use_effect_always ?before_render update let use_effect ~on ?equal ?before_render ?(cleanup = fun () -> ()) f = use_resource ?before_render ~on ?equal ~release:cleanup f let use_effect_once ?before_render ?cleanup f = Core.use_effect_once ?before_render (fun () -> f (); cleanup) let use_effect_always ?before_render ?cleanup f = Core.use_effect_always ?before_render (fun () -> f (); cleanup) let use_memo ~on:deps ?(equal = ( = )) f = let last_deps = use_ref deps in let value = use_ref_lazy (fun () -> f ()) in if not (equal deps !last_deps) then begin last_deps := deps; value := f () end; !value let use_context = Core.use_context
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>