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