1
1
import { useOptimistic , useState , useTransition } from 'react'
2
2
import { type ResponseData , updateDatabase } from './helpers/mockServer'
3
3
4
- // Remember that useOptimistic will not work with <form onSubmit />, and requires
5
- // <form action />
4
+ // Big takeaways:
5
+ // 1. Homegrown optimistic state works with onSubmit, not with actions
6
+ // 2. useOptimistic works with actions, not on submit
6
7
7
8
export function App ( ) {
8
9
const [ error , setError ] = useState ( '' )
@@ -13,6 +14,7 @@ export function App() {
13
14
14
15
const data = ( await updateDatabase ( likes + 1 ) . then ( ( r ) => r . json ( ) ) ) as ResponseData
15
16
setLikes ( data . likes )
17
+
16
18
console . log ( data . likes )
17
19
18
20
if ( data . error ) {
@@ -32,7 +34,7 @@ export function App() {
32
34
)
33
35
}
34
36
35
- // // Step Two: home-made optimistic UI with transitions
37
+ // // Step Two: home-made optimistic UI
36
38
// export function App() {
37
39
// const [error, setError] = useState('')
38
40
// const [likes, setLikes] = useState(0)
@@ -43,12 +45,11 @@ export function App() {
43
45
// async function submit(e: React.FormEvent) {
44
46
// e.preventDefault()
45
47
46
- // startTransition(() => {
47
- // setOpLikes(opLikes + 1)
48
- // })
48
+ // setOpLikes(opLikes + 1)
49
49
50
50
// const data = (await updateDatabase(opLikes + 1).then((r) => r.json())) as ResponseData
51
51
// setLikes(data.likes)
52
+
52
53
// console.log(data.likes)
53
54
54
55
// if (data.error) {
0 commit comments