blob: 7a4608f8ef9219db7034ef7c2e35704cd31d5493 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
(** Update the current propositions when the user change a value in one of the
field.
*)
open StdLabels
type t =
{ position : int
; letter : Jstr.t
; validity : Motus_lib.Validity.t
}
let process { position; letter; validity } state =
let current_prop =
List.mapi state.State.current_prop ~f:(fun pos' content ->
if position <> pos'
then content
else if Jstr.is_empty letter
then None
else Some (Jstr.uppercased letter, validity) )
in
FieldList.set_with_props current_prop state.fields state.rules;
{ state with current_prop }
|