diff options
author | Sébastien Dailly <sebastien@dailly.me> | 2022-02-07 16:21:26 +0100 |
---|---|---|
committer | Sébastien Dailly <sebastien@dailly.me> | 2022-02-07 16:43:33 +0100 |
commit | fe2cced55e1b44dbae57e55fe0f459c85e7369cb (patch) | |
tree | e7ca5f015da050b37aa759a277198512236c97f5 /editor/actions/delete_page.ml | |
parent | 1eeaf137bd30aff1bef34d05eeec686f6da8959d (diff) |
Application unification
Diffstat (limited to 'editor/actions/delete_page.ml')
-rwxr-xr-x | editor/actions/delete_page.ml | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/editor/actions/delete_page.ml b/editor/actions/delete_page.ml index cc15693..5c625bd 100755 --- a/editor/actions/delete_page.ml +++ b/editor/actions/delete_page.ml @@ -1,16 +1,29 @@ -type t = Forms.Events.event option Note.E.send +module M = struct -let apply - : t -> State.t -> State.t - = fun close_sender state -> - begin match state.page_id with + type t = unit + + let apply + : t -> State.t -> State.t + = fun () state -> + match state.page_id with | None -> state | Some page_id -> - let title = Jstr.v "Confirmation" in - let popup = Forms.Ui.popup - ~title - ~form:(Some (Forms.Delete_page.create page_id)) - close_sender in - { state with window = popup::state.window} - end + State.Storage.delete (fun () -> Some page_id); + let json = State.Storage.load None in + State.load_page None state json + +end +let create + : unit -> Event.t Note.event + = fun () -> + let title = Jstr.v "Confirmation" in + let ev = Forms.Ui.popup + ~title + ~form:(Some (Forms.Delete_page.create () )) + in + Note.E.map + (fun v -> Event.E + ( v + , (module M : Event.Handler with type t = M.t ))) + (Note.E.Option.on_some ev) |