@@ -1358,51 +1358,68 @@ and the different jsx modes (classic and automatic).
1358
1358
module InitialContent = {
1359
1359
let original = ` module Button = {
1360
1360
@react.component
1361
- let make = () => {
1362
- let (count, setCount) = React.useState(_ => 0)
1361
+ let make = (~count) => {
1363
1362
let times = switch count {
1364
1363
| 1 => "once"
1365
1364
| 2 => "twice"
1366
1365
| n => n->Belt.Int.toString ++ " times"
1367
1366
}
1368
1367
let text = \` Click me $\{ times\}\`
1369
1368
1370
- <button onClick={_ => setCount(c => c + 1)}> {msg->React.string} </button>
1371
- }
1372
- }
1373
-
1374
- module App = {
1375
- @react.component
1376
- let make = () => {
1377
- <Button />
1369
+ <button> {text->React.string} </button>
1378
1370
}
1379
1371
}
1380
1372
`
1381
1373
1382
- let since_10_1 = ` @@jsxConfig({version: 4, mode: "automatic"})
1374
+ let since_10_1 = ` @@jsxConfig({ version: 4, mode: "automatic" })
1383
1375
1384
- module Button = {
1376
+ module CounterMessage = {
1385
1377
@react.component
1386
- let make = () => {
1387
- let (count, setCount) = React.useState(_ => 0)
1378
+ let make = (~count, ~username=?) => {
1388
1379
let times = switch count {
1389
1380
| 1 => "once"
1390
1381
| 2 => "twice"
1391
- | n => n-> Int.toString ++ " times"
1382
+ | n => Belt. Int.toString(n) ++ " times"
1392
1383
}
1393
- let msg = \` Click me $\{ times\}\`
1394
1384
1395
- <button onClick={_ => setCount(c => c + 1)}> {msg->React.string} </button>
1385
+ let name = switch username {
1386
+ | Some("") => "Anonymous"
1387
+ | Some(name) => name
1388
+ | None => "Anonymous"
1389
+ }
1390
+
1391
+ <div> {React.string(\` Hello \$\{ name\} , you clicked me \` ++ times)} </div>
1396
1392
}
1397
1393
}
1398
1394
1399
1395
module App = {
1400
1396
@react.component
1401
1397
let make = () => {
1402
- <Button />
1398
+ let (count, setCount) = React.useState(() => 0)
1399
+ let (username, setUsername) = React.useState(() => "Anonymous")
1400
+
1401
+ <div>
1402
+ {React.string("Username: ")}
1403
+ <input
1404
+ type_="text"
1405
+ value={username}
1406
+ onChange={evt => {
1407
+ evt->ReactEvent.Form.preventDefault
1408
+ let username = (evt->ReactEvent.Form.target)["value"]
1409
+ setUsername(_prev => username)
1410
+ }}
1411
+ />
1412
+ <button
1413
+ onClick={_evt => {
1414
+ setCount(prev => prev + 1)
1415
+ }}>
1416
+ {React.string("Click me")}
1417
+ </button>
1418
+ <button onClick={_evt => setCount(_ => 0)}> {React.string("Reset")} </button>
1419
+ <CounterMessage count username />
1420
+ </div>
1403
1421
}
1404
1422
}
1405
-
1406
1423
`
1407
1424
}
1408
1425
0 commit comments