summaryrefslogtreecommitdiff
path: root/editor/actions/delete_page.ml
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@dailly.me>2022-02-07 16:21:26 +0100
committerSébastien Dailly <sebastien@dailly.me>2022-02-07 16:43:33 +0100
commitfe2cced55e1b44dbae57e55fe0f459c85e7369cb (patch)
treee7ca5f015da050b37aa759a277198512236c97f5 /editor/actions/delete_page.ml
parent1eeaf137bd30aff1bef34d05eeec686f6da8959d (diff)
Application unification
Diffstat (limited to 'editor/actions/delete_page.ml')
-rwxr-xr-xeditor/actions/delete_page.ml37
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)