Skip to content
This repository was archived by the owner on Jun 15, 2023. It is now read-only.

Commit e52c0b3

Browse files
committed
update jsx ppx comment
1 parent 2fc8ad5 commit e52c0b3

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

cli/reactjs_jsx_ppx_v3.mli

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,30 @@
3838
`ReactDOMRe.createDOMElementVariadic("div", ~props=ReactDOMRe.domProps(~props1=1, ~props2=b), [|foo, bar|])`.
3939
transform the upper-cased case
4040
`[@JSX] Foo.createElement(~key=a, ~ref=b, ~foo=bar, ~spreadProps=baz ~children=[], ())` into
41-
`Foo.make({...baz, key: a, ref: b, foo: bar})`
41+
`React.createElement(Foo.make, {...baz, key: a, ref: b, foo: bar})`
4242
transform the upper-cased case
4343
`[@JSX] Foo.createElement(~foo=bar, ~spreadProps=baz, ~children=[foo, bar], ())` into
44-
Foo.make({...baz, foo: bar, children: React.null}), [|foo, bar|])`
44+
`React.createElement(Foo.make, {...baz, foo: bar, children: React.null}), [|foo, bar|])`
4545
transform `[@JSX] [foo]` into
4646
`ReactDOMRe.createElement(ReasonReact.fragment, [|foo|])`
4747
*)
4848

49+
(*
50+
New JSX transform with React v17
51+
52+
if has key
53+
`jsxKeyed("div", { ... }, "key") or jsxsKeyed("div", { ... }, "key")`
54+
55+
upper case
56+
child X -> `jsx(Foo.make, { ... })`
57+
child -> `jsx(Foo.make, { ... , children: ... })`
58+
children O -> `jsxs(Foo.make, { ..., children: [ ... ]})`
59+
60+
lower case
61+
child X -> `jsx("div", { ... })`
62+
child O -> `jsx("div", { ..., children: ... })`
63+
children O -> `jsxs("div", { ..., children: [ ... ]})`
64+
*)
4965
val rewrite_implementation : Parsetree.structure -> Parsetree.structure
5066

5167
val rewrite_signature : Parsetree.signature -> Parsetree.signature

0 commit comments

Comments
 (0)