From 54f6e68c051afec0d20c349352feee5356e11b35 Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Mon, 7 Feb 2022 15:49:48 +0100 Subject: Update editor code --- editor/state/dune | 1 + editor/state/state.ml | 3 +++ editor/state/state.mli | 16 ++++++++++++++++ 3 files changed, 20 insertions(+) (limited to 'editor/state') diff --git a/editor/state/dune b/editor/state/dune index dd405a1..b61174d 100755 --- a/editor/state/dune +++ b/editor/state/dune @@ -2,6 +2,7 @@ (name state) (libraries brr + application prosemirror plugins ) diff --git a/editor/state/state.ml b/editor/state/state.ml index 569f26c..649473c 100755 --- a/editor/state/state.ml +++ b/editor/state/state.ml @@ -14,6 +14,7 @@ type t = ; window : Brr.El.t list ; pm : PM.t } +type state = t (** Compare two states together. @@ -86,3 +87,5 @@ let init ; pm } + +include Application.Make(struct type t = state end) diff --git a/editor/state/state.mli b/editor/state/state.mli index 6984067..20d5288 100755 --- a/editor/state/state.mli +++ b/editor/state/state.mli @@ -11,6 +11,7 @@ type t = ; pm : Prosemirror.t } + val eq: t -> t -> bool (** Update the title element according to the page. *) @@ -26,3 +27,18 @@ val load_page (** Initialise a new state *) val init : Prosemirror.t -> Prosemirror.View.editor_view Js.t -> float -> Jstr.t option -> t + +type state = t +module type Event = sig + + type t + + val update: t -> state -> state + +end + +type event = E : 'a * (module Event with type t = 'a) -> event + +(** Simple helper for the main event loop *) +val run + : ?eq:(t -> t -> bool) -> t -> event Note.E.t -> state Note.S.t -- cgit v1.2.3