summaryrefslogtreecommitdiff
path: root/bs5/universal/js/ClientRouter.re
diff options
context:
space:
mode:
Diffstat (limited to 'bs5/universal/js/ClientRouter.re')
-rw-r--r--bs5/universal/js/ClientRouter.re22
1 files changed, 22 insertions, 0 deletions
diff --git a/bs5/universal/js/ClientRouter.re b/bs5/universal/js/ClientRouter.re
new file mode 100644
index 0000000..40083c2
--- /dev/null
+++ b/bs5/universal/js/ClientRouter.re
@@ -0,0 +1,22 @@
+type t = Router.t(Fetch.Response.t);
+
+external navigate: string => unit = "window.__navigate";
+external useAction:
+ (string, string) => ((Router.payload, Router.location, unit) => unit, bool) =
+ "window.__useAction";
+
+let useRouter: unit => t =
+ () => {
+ {
+ location: Router.initialLocation,
+ navigate: str => {
+ navigate(Router.locationToString(str));
+ },
+ useAction: (endpoint, method) => {
+ useAction(endpoint, method);
+ },
+ refresh: str => {
+ Js.log(str);
+ },
+ };
+ };