Source file string_input.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
open! Core
open Bonsai_web
module String_option = struct
type t = string option [@@deriving sexp, equal]
end
let component =
let open Bonsai.Let_syntax in
let%sub state = Bonsai.state None ~equal:[%equal: String_option.t] in
return
(let%map value, set_value = state in
let view =
Vdom_input_widgets.Entry.text
~allow_updates_when_focused:`Never
~merge_behavior:Legacy_dont_merge
~value
~on_input:set_value
()
in
{ And_view.value; view })
;;