summaryrefslogtreecommitdiff
path: root/editor/actions/delete_page.ml
diff options
context:
space:
mode:
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)