diff options
Diffstat (limited to 'motus/js/updateProposition.ml')
-rw-r--r-- | motus/js/updateProposition.ml | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/motus/js/updateProposition.ml b/motus/js/updateProposition.ml new file mode 100644 index 0000000..ab10db3 --- /dev/null +++ b/motus/js/updateProposition.ml @@ -0,0 +1,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 : State.letter_validity + } + +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 } |