summaryrefslogtreecommitdiff
path: root/bs5/universal/native/shared/Promise_renderer.re
diff options
context:
space:
mode:
Diffstat (limited to 'bs5/universal/native/shared/Promise_renderer.re')
-rw-r--r--bs5/universal/native/shared/Promise_renderer.re28
1 files changed, 28 insertions, 0 deletions
diff --git a/bs5/universal/native/shared/Promise_renderer.re b/bs5/universal/native/shared/Promise_renderer.re
new file mode 100644
index 0000000..94ec072
--- /dev/null
+++ b/bs5/universal/native/shared/Promise_renderer.re
@@ -0,0 +1,28 @@
+[@warning "-33"];
+
+open Melange_json.Primitives;
+
+module Reader = {
+ [@react.component]
+ let make = (~promise: Js.Promise.t(string)) => {
+ let value = React.Experimental.use(promise);
+ let%browser_only onMouseOver = _ev => {
+ Js.log("Over the promise!");
+ };
+ <div className="cursor-pointer" onMouseOver> <Text> value </Text> </div>;
+ };
+};
+
+[@react.client.component]
+let make = (~promise: Js.Promise.t(string)) => {
+ <div className={Cx.make([Theme.text(Theme.Color.Gray4)])}>
+ <React.Suspense
+ fallback={
+ <div className={Cx.make([Theme.text(Theme.Color.Gray14)])}>
+ {React.string("Loading...")}
+ </div>
+ }>
+ <Reader promise />
+ </React.Suspense>
+ </div>;
+};