diff options
Diffstat (limited to 'bs5/universal/native/shared/DeleteNoteButton.re')
-rw-r--r-- | bs5/universal/native/shared/DeleteNoteButton.re | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/bs5/universal/native/shared/DeleteNoteButton.re b/bs5/universal/native/shared/DeleteNoteButton.re new file mode 100644 index 0000000..995b489 --- /dev/null +++ b/bs5/universal/native/shared/DeleteNoteButton.re @@ -0,0 +1,33 @@ +open Melange_json.Primitives; + +[@warning "-26-27-32"]; +[@react.client.component] +let make = (~noteId: int) => { + let (isNavigating, startNavigating) = React.useTransition(); + let (isDeleting, setIsDeleting) = RR.useStateValue(false); + let {navigate, _}: ClientRouter.t = ClientRouter.useRouter(); + + let className = Theme.button; + + <button + className + disabled={isNavigating || isDeleting} + onClick={_ => { + ServerFunctions.Notes.delete_.call(~id=noteId) + |> Js.Promise.then_(_ => { + setIsDeleting(false); + startNavigating(() => { + navigate({ + selectedId: None, + isEditing: false, + searchText: None, + }) + }); + Js.Promise.resolve(); + }) + |> ignore + }} + role="menuitem"> + {React.string("Delete")} + </button>; +}; |