Skip to content

Commit 479679f

Browse files
authored
Deprecate JSX 3 (#120)
* deprecate v3 * changelog
1 parent 654aa4b commit 479679f

File tree

5 files changed

+278
-211
lines changed

5 files changed

+278
-211
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
> - :house: [Internal]
1111
> - :nail_care: [Polish]
1212
13+
## 0.13.1 (Unreleased)
14+
15+
- Deprecate JSX 3 https://github.com/rescript-lang/rescript-react/pull/120
16+
1317
## 0.13.0
1418

1519
#### :boom: Breaking Change

src/v3/ReactDOMStyle_V3.res

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
type t = ReactDOMStyle.t
22

3-
@obj
3+
@obj @deprecated("Jsx 3 is deprecated, use jsx 4 instead")
44
external make: (
55
~azimuth: string=?,
66
~background: string=?,
@@ -420,16 +420,18 @@ external make: (
420420
) => t = ""
421421

422422
/* CSS2Properties: https://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSS2Properties */
423-
@val
423+
@val @deprecated("Jsx 3 is deprecated, use jsx 4 instead")
424424
external combine: (@as(json`{}`) _, t, t) => t = "Object.assign"
425425

426+
@deprecated("Jsx 3 is deprecated, use jsx 4 instead")
426427
external _dictToStyle: Js.Dict.t<string> => t = "%identity"
427428

429+
@deprecated("Jsx 3 is deprecated, use jsx 4 instead")
428430
let unsafeAddProp = (style, key, value) => {
429431
let dict = Js.Dict.empty()
430432
Js.Dict.set(dict, key, value)
431433
combine(style, _dictToStyle(dict))
432434
}
433435

434-
@val
436+
@val @deprecated("Jsx 3 is deprecated, use jsx 4 instead")
435437
external unsafeAddStyle: (@as(json`{}`) _, t, {..}) => t = "Object.assign"

src/v3/ReactDOM_V3.res

+13-8
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,35 @@
66
calls and add the appropriate `require("react-dom")` in the file calling this `render` */
77

88
// Helper so that ReactDOM itself doesn't bring any runtime
9-
@val @return(nullable)
9+
@val @return(nullable) @deprecated("Jsx 3 is deprecated, use jsx 4 instead")
1010
external querySelector: string => option<Dom.element> = "document.querySelector"
1111

12-
@module("react-dom")
12+
@module("react-dom") @deprecated("Jsx 3 is deprecated, use jsx 4 instead")
1313
external render: (React.element, Dom.element) => unit = "render"
1414

1515
module Experimental = {
1616
type root = ReactDOM.Client.Root.t
1717

18-
@module("react-dom")
18+
@module("react-dom") @deprecated("Jsx 3 is deprecated, use jsx 4 instead")
1919
external createRoot: Dom.element => root = "createRoot"
2020

21-
@module("react-dom")
21+
@module("react-dom") @deprecated("Jsx 3 is deprecated, use jsx 4 instead")
2222
external createBlockingRoot: Dom.element => root = "createBlockingRoot"
2323

24-
@send external render: (root, React.element) => unit = "render"
24+
@send @deprecated("Jsx 3 is deprecated, use jsx 4 instead")
25+
external render: (root, React.element) => unit = "render"
2526
}
2627

27-
@module("react-dom")
28+
@module("react-dom") @deprecated("Jsx 3 is deprecated, use jsx 4 instead")
2829
external hydrate: (React.element, Dom.element) => unit = "hydrate"
2930

30-
@module("react-dom")
31+
@module("react-dom") @deprecated("Jsx 3 is deprecated, use jsx 4 instead")
3132
external createPortal: (React.element, Dom.element) => React.element = "createPortal"
3233

33-
@module("react-dom")
34+
@module("react-dom") @deprecated("Jsx 3 is deprecated, use jsx 4 instead")
3435
external unmountComponentAtNode: Dom.element => unit = "unmountComponentAtNode"
3536

37+
@deprecated("Jsx 3 is deprecated, use jsx 4 instead")
3638
external domElementToObj: Dom.element => {..} = "%identity"
3739

3840
type style = ReactDOMStyle.t
@@ -44,7 +46,9 @@ module Ref = {
4446
type currentDomRef = React.ref<Js.nullable<Dom.element>>
4547
type callbackDomRef = Js.nullable<Dom.element> => unit
4648

49+
@deprecated("Jsx 3 is deprecated, use jsx 4 instead")
4750
external domRef: currentDomRef => domRef = "%identity"
51+
@deprecated("Jsx 3 is deprecated, use jsx 4 instead")
4852
external callbackDomRef: callbackDomRef => domRef = "%identity"
4953
}
5054

@@ -2108,6 +2112,7 @@ include Props
21082112

21092113
// As we've removed `ReactDOMRe.createElement`, this enables patterns like
21102114
// React.createElement(ReactDOM.stringToComponent(multiline ? "textarea" : "input"), ...)
2115+
@deprecated("Jsx 3 is deprecated, use jsx 4 instead")
21112116
external stringToComponent: string => React.component<domProps> = "%identity"
21122117

21132118
module Style = ReactDOMStyle

0 commit comments

Comments
 (0)