2017-11-28 13:15:03 +00:00
|
|
|
let component = ReasonReact.statelessComponent("Index");
|
|
|
|
|
2019-01-02 10:43:19 +00:00
|
|
|
let make = (~onServer, _children) => {
|
2017-08-27 20:13:35 +00:00
|
|
|
...component,
|
2019-01-02 10:43:19 +00:00
|
|
|
render: _self =>
|
2017-08-27 20:13:35 +00:00
|
|
|
<div>
|
|
|
|
<Header />
|
2019-01-02 10:43:19 +00:00
|
|
|
<p>
|
|
|
|
{ReasonReact.string("HOME PAGE is here!")}
|
|
|
|
<br />
|
|
|
|
{ReasonReact.string("onServer: " ++ string_of_bool(onServer))}
|
|
|
|
</p>
|
2017-08-27 20:13:35 +00:00
|
|
|
<Counter />
|
2019-01-02 10:43:19 +00:00
|
|
|
</div>,
|
2017-08-27 20:13:35 +00:00
|
|
|
};
|
2017-11-28 13:15:03 +00:00
|
|
|
|
2019-01-02 10:43:19 +00:00
|
|
|
let default = ReasonReact.wrapReasonForJs(~component, jsProps => make(~onServer=jsProps##onServer, [||]));
|
|
|
|
|
|
|
|
/* The way to do getInitialProps: https://github.com/zeit/next.js/issues/4202#issuecomment-439175214 */
|
|
|
|
let getInitialProps = context =>
|
|
|
|
Js.Promise.make((~resolve, ~reject as _) => {
|
|
|
|
let onServer =
|
|
|
|
switch (Js.Nullable.toOption(context##req)) {
|
|
|
|
| None => false
|
|
|
|
| Some(_) => true
|
|
|
|
};
|
|
|
|
resolve(. {"onServer": onServer});
|
|
|
|
});
|
|
|
|
|
|
|
|
/* In 7.0.2 canary, you must remove the Js.Promise.make wrapper */
|
|
|
|
/*
|
|
|
|
let getInitialProps = context => {
|
|
|
|
let onServer =
|
|
|
|
switch (Js.Nullable.toOption(context##req)) {
|
|
|
|
| None => false
|
|
|
|
| Some(_) => true
|
|
|
|
};
|
|
|
|
{"onServer": onServer};
|
|
|
|
};
|
|
|
|
*/
|
|
|
|
|
|
|
|
let inject = [%bs.raw {| (cls, fn) => cls.getInitialProps = fn |}];
|
|
|
|
|
|
|
|
inject(default, getInitialProps);
|