Skip to content

Commit f5f5579

Browse files
committed
Merge branch '19' of github.com:/reasonml/reason-react into 19
* '19' of github.com:/reasonml/reason-react: Update src/React.re Update src/React.re Update src/React.re
2 parents e78adcc + 5636b99 commit f5f5579

File tree

6 files changed

+221
-158
lines changed

6 files changed

+221
-158
lines changed

src/React.re

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -887,14 +887,16 @@ external useDebugValue: ('value, ~format: 'value => string=?, unit) => unit =
887887

888888
module Experimental = {
889889
/* This module is used to bind to APIs for future versions of React. There is no guarantee of backwards compatibility or stability. */
890+
/* https://react.dev/reference/react/use */
890891
[@mel.module "react"] external usePromise: Js.Promise.t('a) => 'a = "use";
891892
[@mel.module "react"] external useContext: Context.t('a) => 'a = "use";
893+
/* https://react.dev/reference/react/useTransition */
892894
[@mel.module "react"]
893895
external useTransitionAsync:
894896
unit => (bool, callbackAsync(callbackAsync(unit, unit), unit)) =
895897
"useTransition";
896898

897-
/* https://es.react.dev/reference/react/useOptimistic */
899+
/* https://react.dev/reference/react/useOptimistic */
898900
[@mel.module "react"]
899901
external useOptimistic:
900902
('state, ('state, 'optimisticValue) => 'state) =>

src/ReactDOMTestUtils.re

Lines changed: 76 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,32 @@ type undefined = Js.undefined(unit);
22

33
let undefined: undefined = Js.Undefined.empty;
44

5-
[@deprecated "use React.act instead"] [@mel.module "react"]
5+
[@mel.module "react"]
66
external reactAct: ((. unit) => undefined) => unit = "act";
77

88
[@deprecated "use React.act instead"]
99
let act: (unit => unit) => unit =
10-
[@alert "-deprecated"]
11-
(
12-
func => {
13-
let reactFunc =
14-
(.) => {
15-
func();
16-
undefined;
17-
};
18-
reactAct(reactFunc);
19-
}
20-
);
21-
22-
[@deprecated "use React.actAsync instead"] [@mel.module "react"]
10+
func => {
11+
let reactFunc =
12+
(.) => {
13+
func();
14+
undefined;
15+
};
16+
reactAct(reactFunc);
17+
};
18+
19+
[@mel.module "react"]
2320
external reactActAsync: ((. unit) => Js.Promise.t('a)) => Js.Promise.t(unit) =
2421
"act";
2522

2623
[@deprecated "use React.actAsync instead"]
27-
let actAsync =
28-
[@alert "-deprecated"]
29-
(
30-
func => {
31-
let reactFunc =
32-
(.) => {
33-
func();
34-
};
35-
reactActAsync(reactFunc);
36-
}
37-
);
24+
let actAsync = func => {
25+
let reactFunc =
26+
(.) => {
27+
func();
28+
};
29+
reactActAsync(reactFunc);
30+
};
3831

3932
[@deprecated
4033
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
@@ -97,115 +90,83 @@ module Simulate = {
9790
[@mel.scope "Simulate"]
9891
external blur: Dom.element => unit = "blur";
9992

93+
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
94+
external changeWithEvent: (Dom.element, 'event) => unit = "change";
95+
10096
[@deprecated
10197
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
10298
]
103-
[@mel.module "react-dom/test-utils"]
104-
[@mel.scope "Simulate"]
105-
external changeWithEvent: (Dom.element, 'event) => unit = "change";
99+
let changeWithValue = (element, value) => {
100+
let event = {
101+
"target": {
102+
"value": value,
103+
},
104+
};
105+
changeWithEvent(element, event);
106+
};
106107

107108
[@deprecated
108109
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
109110
]
110-
let changeWithValue =
111-
[@alert "-deprecated"]
112-
(
113-
(element, value) => {
114-
let event = {
115-
"target": {
116-
"value": value,
117-
},
118-
};
119-
changeWithEvent(element, event);
120-
}
121-
);
122-
111+
let changeWithChecked = (element, value) => {
112+
let event = {
113+
"target": {
114+
"checked": value,
115+
},
116+
};
117+
changeWithEvent(element, event);
118+
};
123119
[@deprecated
124120
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
125121
]
126-
let changeWithChecked =
127-
[@alert "-deprecated"]
128-
(
129-
(element, value) => {
130-
let event = {
131-
"target": {
132-
"checked": value,
133-
},
134-
};
135-
changeWithEvent(element, event);
136-
}
137-
);
138-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
122+
[@mel.module "react-dom/test-utils"]
123+
[@mel.scope "Simulate"]
139124
external canPlay: Dom.element => unit = "canPlay";
140-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
125+
[@deprecated
126+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
127+
]
128+
[@mel.module "react-dom/test-utils"]
129+
[@mel.scope "Simulate"]
141130
external timeUpdate: Dom.element => unit = "timeUpdate";
142-
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
131+
[@deprecated
132+
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
133+
]
134+
[@mel.module "react-dom/test-utils"]
135+
[@mel.scope "Simulate"]
143136
external ended: Dom.element => unit = "ended";
144137
[@mel.module "react-dom/test-utils"] [@mel.scope "Simulate"]
145138
external focus: Dom.element => unit = "focus";
146139
};
147140

148141
external document: Dom.document = "document";
149142

150-
[@deprecated
151-
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
152-
]
153-
[@mel.return nullable]
154-
[@mel.send]
143+
[@mel.return nullable] [@mel.send]
155144
external querySelector: (Dom.element, string) => option(Dom.element) =
156145
"querySelector";
157146

158-
[@deprecated
159-
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
160-
]
161147
[@mel.send]
162148
external querySelectorAll:
163149
(Dom.element, string) => Js.Array.array_like(Dom.element) =
164150
"querySelectorAll";
165151

166-
[@deprecated
167-
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
168-
]
169-
[@mel.get]
170-
external textContent: Dom.element => string = "textContent";
152+
[@mel.get] external textContent: Dom.element => string = "textContent";
171153

172-
[@deprecated
173-
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
174-
]
175-
[@mel.return nullable]
176-
[@mel.get]
154+
[@mel.return nullable] [@mel.get]
177155
external body: Dom.document => option(Dom.element) = "body";
178156

179-
[@deprecated
180-
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
181-
]
182157
[@mel.send]
183158
external createElement: (Dom.document, string) => Dom.element =
184159
"createElement";
185160

186-
[@deprecated
187-
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
188-
]
189-
[@mel.send]
190-
external remove: Dom.element => unit = "remove";
161+
[@mel.send] external remove: Dom.element => unit = "remove";
191162

192-
[@deprecated
193-
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
194-
]
195163
[@mel.send]
196164
external appendChild: (Dom.element, Dom.element) => Dom.element =
197165
"appendChild";
198166

199-
[@deprecated
200-
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
201-
]
202-
let querySelectorAll =
203-
[@alert "-deprecated"]
204-
(
205-
(element, string) => {
206-
Js.Array.from(querySelectorAll(element, string));
207-
}
208-
);
167+
let querySelectorAll = (element, string) => {
168+
Js.Array.from(querySelectorAll(element, string));
169+
};
209170

210171
module DOM = {
211172
[@deprecated
@@ -218,9 +179,8 @@ module DOM = {
218179
[@deprecated
219180
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
220181
]
221-
let findBySelector =
222-
[@alert "-deprecated"]
223-
((element, selector) => querySelector(element, selector));
182+
let findBySelector = (element, selector) =>
183+
querySelector(element, selector);
224184

225185
[@deprecated
226186
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
@@ -231,56 +191,37 @@ module DOM = {
231191
[@deprecated
232192
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
233193
]
234-
let findBySelectorAndTextContent =
235-
[@alert "-deprecated"]
236-
(
237-
(element, selector, content) =>
238-
querySelectorAll(element, selector)
239-
|> Array.find_opt(node => node->textContent === content)
240-
);
194+
let findBySelectorAndTextContent = (element, selector, content) =>
195+
querySelectorAll(element, selector)
196+
|> Array.find_opt(node => node->textContent === content);
241197

242198
[@deprecated
243199
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-webapi instead."
244200
]
245-
let findBySelectorAndPartialTextContent =
246-
[@alert "-deprecated"]
247-
(
248-
(element, selector, content) =>
249-
querySelectorAll(element, selector)
250-
|> Array.find_opt(node =>
251-
Js.String.includes(~search=content, node->textContent)
252-
)
253-
);
201+
let findBySelectorAndPartialTextContent = (element, selector, content) =>
202+
querySelectorAll(element, selector)
203+
|> Array.find_opt(node =>
204+
Js.String.includes(~search=content, node->textContent)
205+
);
254206
};
255207

256208
[@deprecated
257209
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
258210
]
259-
let prepareContainer =
260-
[@alert "-deprecated"]
261-
(
262-
(container: ref(option(Dom.element)), ()) => {
263-
let containerElement = document->createElement("div");
264-
let _: option(_) =
265-
Option.map(
266-
body => body->appendChild(containerElement),
267-
document->body,
268-
);
269-
container := Some(containerElement);
270-
}
271-
);
211+
let prepareContainer = (container: ref(option(Dom.element)), ()) => {
212+
let containerElement = document->createElement("div");
213+
let _: option(_) =
214+
Option.map(body => body->appendChild(containerElement), document->body);
215+
container := Some(containerElement);
216+
};
272217

273218
[@deprecated
274219
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."
275220
]
276-
let cleanupContainer =
277-
[@alert "-deprecated"]
278-
(
279-
(container: ref(option(Dom.element)), ()) => {
280-
let _: option(_) = Option.map(remove, container^);
281-
container := None;
282-
}
283-
);
221+
let cleanupContainer = (container: ref(option(Dom.element)), ()) => {
222+
let _: option(_) = Option.map(remove, container^);
223+
container := None;
224+
};
284225

285226
[@deprecated
286227
"ReactDOMTestUtils is deprecated, and will be removed in next version. Please use melange-testing-library instead."

0 commit comments

Comments
 (0)