summaryrefslogtreecommitdiff
path: root/bs5/universal/native/shared/DeleteNoteButton.re
diff options
context:
space:
mode:
Diffstat (limited to 'bs5/universal/native/shared/DeleteNoteButton.re')
-rw-r--r--bs5/universal/native/shared/DeleteNoteButton.re33
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>;
+};