summaryrefslogtreecommitdiff
path: root/bs5/universal/native/shared/Button.re
diff options
context:
space:
mode:
Diffstat (limited to 'bs5/universal/native/shared/Button.re')
-rw-r--r--bs5/universal/native/shared/Button.re30
1 files changed, 30 insertions, 0 deletions
diff --git a/bs5/universal/native/shared/Button.re b/bs5/universal/native/shared/Button.re
new file mode 100644
index 0000000..653b7d7
--- /dev/null
+++ b/bs5/universal/native/shared/Button.re
@@ -0,0 +1,30 @@
+open Melange_json.Primitives;
+
+[@react.client.component]
+let make = (~noteId: option(int), ~children: React.element) => {
+ let (isPending, startTransition) = React.useTransition();
+ let {navigate, _}: ClientRouter.t = ClientRouter.useRouter();
+ let isDraft = Belt.Option.isNone(noteId);
+
+ let className =
+ Cx.make([
+ Theme.button,
+ isDraft ? "edit-button--solid" : "edit-button--outline",
+ ]);
+
+ <button
+ className
+ disabled=isPending
+ onClick={_ => {
+ startTransition(() => {
+ navigate({
+ selectedId: noteId,
+ isEditing: true,
+ searchText: None,
+ })
+ })
+ }}
+ role="menuitem">
+ children
+ </button>;
+};