diff options
Diffstat (limited to 'bs5/universal/native/shared/Promise_renderer.re')
-rw-r--r-- | bs5/universal/native/shared/Promise_renderer.re | 28 |
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>; +}; |