File tree Expand file tree Collapse file tree 3 files changed +7
-8
lines changed
react/advanced-hooks/05-optimistic-ui/lecture Expand file tree Collapse file tree 3 files changed +7
-8
lines changed Original file line number Diff line number Diff line change @@ -16,11 +16,10 @@ export function App() {
1616 setOptimisticLikes ( optimisticLikes + 1 )
1717 const data = ( await updateDatabase ( optimisticLikes + 1 ) . then ( ( r ) => r . json ( ) ) ) as ResponseData
1818
19- if ( ! data . error ) {
20- console . log ( data . likes )
21- setLikes ( data . likes )
22- } else {
23- setLikes ( data . likes )
19+ setLikes ( data . likes )
20+ console . log ( data . likes )
21+
22+ if ( data . error ) {
2423 setError ( data . error )
2524 }
2625 }
Original file line number Diff line number Diff line change 33Start with a basic form submission that asynchronously updates likes:
44
551 . Add our own implementation of ` optimisticLikes ` with ` useState ` . Notice how
6- ` likes ` becomes useless / unused. Set set it but nothing uses it. Also re-factor
6+ ` likes ` becomes useless / unused. We set it but nothing uses it. Also re-factor
77 to use transitions. See commented solution in App.tsx
88
992 . Refactor ` onSubmit={submit} ` to ` action={action} ` and now the homegrown optimistic likes
Original file line number Diff line number Diff line change @@ -7,9 +7,9 @@ export async function updateDatabase(likes: number) {
77 let status = 200
88 let responseData : ResponseData = { likes }
99
10- if ( likes == = 5 ) {
10+ if ( likes > = 5 ) {
1111 status = 400
12- responseData = { likes : 4 , error : 'Error saving 5 likes' }
12+ responseData = { likes : 4 , error : 'Error saving 5 or more likes' }
1313 }
1414
1515 return new Response ( JSON . stringify ( responseData ) , {
You can’t perform that action at this time.
0 commit comments