Skip to content

Commit 9298ed6

Browse files
authored
latest melange (#151)
1 parent 0c2966a commit 9298ed6

File tree

4 files changed

+26
-24
lines changed

4 files changed

+26
-24
lines changed

documentation-site.opam

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ depends: [
2727
]
2828
dev-repo: "git+https://github.com/melange-re/melange-re.github.io.git"
2929
pin-depends: [
30-
[ "melange.dev" "git+https://github.com/melange-re/melange.git#7bec5dd58dbc0b20c9821c5b80c88c6d02df52e0" ]
31-
[ "melange-playground.dev" "git+https://github.com/melange-re/melange.git#7bec5dd58dbc0b20c9821c5b80c88c6d02df52e0" ]
32-
[ "reason-react.dev" "git+https://github.com/reasonml/reason-react.git#2a43311df12eb3988fd9729098928e6b03cfaa07" ]
33-
[ "reason-react-ppx.dev" "git+https://github.com/reasonml/reason-react.git#2a43311df12eb3988fd9729098928e6b03cfaa07" ]
30+
[ "melange.dev" "git+https://github.com/melange-re/melange.git#2aa31880dc71dc40c5c25f5514ded831d8b14353" ]
31+
[ "melange-playground.dev" "git+https://github.com/melange-re/melange.git#2aa31880dc71dc40c5c25f5514ded831d8b14353" ]
32+
[ "reason-react.dev" "git+https://github.com/reasonml/reason-react.git#4ee2eda353628090eda95e0b8dabe4e2be50f954" ]
33+
[ "reason-react-ppx.dev" "git+https://github.com/reasonml/reason-react.git#4ee2eda353628090eda95e0b8dabe4e2be50f954" ]
3434
[ "cmarkit.dev" "git+https://github.com/dbuenzli/cmarkit.git#f37c8ea86fd0be8dba7a8babcee3682e0e047d91" ]
3535
]
3636
build: [

playground/src/app.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import "./App.css";
22
import "../../_build/default/playground/reason-react-cmijs";
3-
import "../../_opam/bin/jsoo_main.bc";
3+
import "../../_opam/bin/mel_playground.bc";
44
import "../../_opam/bin/melange-cmijs";
55
import "../../_opam/bin/format.bc.js";
66

playground/src/examples.js

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -78,34 +78,37 @@ Belt.Array.makeBy(42, _ => random_gaussian())->(Belt.Array.forEach(Js.log));`,
7878
name: "React Greeting",
7979
ml: `module Greeting = struct
8080
let make () = (button ~children:[ React.string "Hello!" ] () [@JSX])
81-
[@@react.component]
81+
[@@react.component]
8282
end
8383
8484
let element = ReactDOM.querySelector "#preview"
8585
8686
let () =
8787
match element with
88-
| Some root ->
89-
ReactDOM.render (Greeting.createElement ~children:[] () [@JSX]) root
88+
| Some element ->
89+
let root = ReactDOM.Client.createRoot element in
90+
ReactDOM.Client.render root
91+
(Greeting.createElement ~children:[] () [@JSX])
9092
| None ->
9193
Js.Console.error
92-
"Failed to start React: couldn't find the #preview element"
93-
`,
94+
"Failed to start React: couldn't find the #preview element"`,
9495
re: `module Greeting = {
9596
[@react.component]
96-
let make = () => {
97-
<button> {React.string("Hello!")} </button>;
98-
};
97+
let make = () => <button> {React.string("Hello!")} </button>;
9998
};
100-
ReactDOM.querySelector("#preview")
101-
->(
102-
fun
103-
| Some(root) => ReactDOM.render(<Greeting />, root)
104-
| None =>
105-
Js.Console.error(
106-
"Failed to start React: couldn't find the #preview element",
107-
)
108-
);`,
99+
100+
let element = ReactDOM.querySelector("#preview");
101+
102+
let () =
103+
switch (element) {
104+
| Some(element) =>
105+
let root = ReactDOM.Client.createRoot(element);
106+
ReactDOM.Client.render(root, <Greeting />);
107+
| None =>
108+
Js.Console.error(
109+
"Failed to start React: couldn't find the #preview element",
110+
)
111+
};`,
109112
},
110113
];
111114

playground/src/worker.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,7 @@ initWorkerizedReducer(
125125
// bundling always happens in worker as it's expensive. Evaluation too,
126126
// but if there is DOM manipulation, then defer evaluation to the
127127
// main thread, as worker doesn't have access to DOM
128-
const requireReactString = "import * as React";
129-
if (code.indexOf(requireReactString) >= 0) {
128+
if (code.indexOf("react/jsx-runtime") >= 0 || code.indexOf("react-dom/client") >= 0) {
130129
state.bundledCode = output[0].code;
131130
} else {
132131
state.bundledCode = undefined;

0 commit comments

Comments
 (0)