File tree Expand file tree Collapse file tree 11 files changed +87
-123
lines changed
01.solution.vite-plugin/app
02.solution.loader-rsc/app
03.solution.rsc-route/app
04.solution.server-fns/app
05.solution.use-client/app Expand file tree Collapse file tree 11 files changed +87
-123
lines changed Original file line number Diff line number Diff line change 1+ export async function setIsFavorite ( formData : FormData ) {
2+ // Simulate API call delay
3+ await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
4+
5+ const movieId = Number ( formData . get ( 'id' ) )
6+ const isFavorite = formData . get ( 'isFavorite' ) === 'true'
7+ // Update the movie's favorite status
8+ const movie = movies . find ( ( m ) => m . id === movieId )
9+ if ( movie ) {
10+ movie . isFavorite = isFavorite
11+ }
12+ }
13+
114// Mock data for demonstration
215let movies = [
316 {
@@ -85,20 +98,3 @@ export async function getMovie(id: number) {
8598 }
8699 return movie
87100}
88-
89- export async function setIsFavorite ( {
90- movieId,
91- isFavorite,
92- } : {
93- movieId : number
94- isFavorite : boolean
95- } ) {
96- // Simulate API call delay
97- await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
98-
99- // Update the movie's favorite status
100- const movie = movies . find ( ( m ) => m . id === movieId )
101- if ( movie ) {
102- movie . isFavorite = isFavorite
103- }
104- }
Original file line number Diff line number Diff line change @@ -9,14 +9,8 @@ export async function loader({ params }: Route.LoaderArgs) {
99}
1010
1111export async function action ( { request } : Route . ActionArgs ) {
12- // Simulate API call delay
13- await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
1412 const formData = await request . formData ( )
15-
16- const movieId = Number ( formData . get ( 'id' ) )
17- const isFavorite = formData . get ( 'isFavorite' ) === 'true'
18- // Update the movie's favorite status
19- await setIsFavorite ( { movieId, isFavorite } )
13+ await setIsFavorite ( formData )
2014 return { success : true }
2115}
2216
Original file line number Diff line number Diff line change @@ -13,8 +13,11 @@ export default defineConfig({
1313 plugins : [
1414 tailwindcss ( ) ,
1515 tsconfigPaths ( ) ,
16- // here we go...
16+ // 💣 replace this:
1717 reactRouter ( ) ,
18+ // 🐨 with this:
19+ // reactRouterRSC(),
20+ // rsc(),
1821 devtoolsJson ( ) ,
1922 ] ,
2023} )
Original file line number Diff line number Diff line change 1+ export async function setIsFavorite ( formData : FormData ) {
2+ // Simulate API call delay
3+ await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
4+
5+ const movieId = Number ( formData . get ( 'id' ) )
6+ const isFavorite = formData . get ( 'isFavorite' ) === 'true'
7+ // Update the movie's favorite status
8+ const movie = movies . find ( ( m ) => m . id === movieId )
9+ if ( movie ) {
10+ movie . isFavorite = isFavorite
11+ }
12+ }
13+
114// Mock data for demonstration
215let movies = [
316 {
@@ -85,20 +98,3 @@ export async function getMovie(id: number) {
8598 }
8699 return movie
87100}
88-
89- export async function setIsFavorite ( {
90- movieId,
91- isFavorite,
92- } : {
93- movieId : number
94- isFavorite : boolean
95- } ) {
96- // Simulate API call delay
97- await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
98-
99- // Update the movie's favorite status
100- const movie = movies . find ( ( m ) => m . id === movieId )
101- if ( movie ) {
102- movie . isFavorite = isFavorite
103- }
104- }
Original file line number Diff line number Diff line change @@ -9,14 +9,8 @@ export async function loader({ params }: Route.LoaderArgs) {
99}
1010
1111export async function action ( { request } : Route . ActionArgs ) {
12- // Simulate API call delay
13- await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
1412 const formData = await request . formData ( )
15-
16- const movieId = Number ( formData . get ( 'id' ) )
17- const isFavorite = formData . get ( 'isFavorite' ) === 'true'
18- // Update the movie's favorite status
19- await setIsFavorite ( { movieId, isFavorite } )
13+ await setIsFavorite ( formData )
2014 return { success : true }
2115}
2216
Original file line number Diff line number Diff line change 1+ export async function setIsFavorite ( formData : FormData ) {
2+ // Simulate API call delay
3+ await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
4+
5+ const movieId = Number ( formData . get ( 'id' ) )
6+ const isFavorite = formData . get ( 'isFavorite' ) === 'true'
7+ // Update the movie's favorite status
8+ const movie = movies . find ( ( m ) => m . id === movieId )
9+ if ( movie ) {
10+ movie . isFavorite = isFavorite
11+ }
12+ }
13+
114// Mock data for demonstration
215let movies = [
316 {
@@ -85,20 +98,3 @@ export async function getMovie(id: number) {
8598 }
8699 return movie
87100}
88-
89- export async function setIsFavorite ( {
90- movieId,
91- isFavorite,
92- } : {
93- movieId : number
94- isFavorite : boolean
95- } ) {
96- // Simulate API call delay
97- await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
98-
99- // Update the movie's favorite status
100- const movie = movies . find ( ( m ) => m . id === movieId )
101- if ( movie ) {
102- movie . isFavorite = isFavorite
103- }
104- }
Original file line number Diff line number Diff line change @@ -9,14 +9,8 @@ export async function loader({ params }: Route.LoaderArgs) {
99}
1010
1111export async function action ( { request } : Route . ActionArgs ) {
12- // Simulate API call delay
13- await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
1412 const formData = await request . formData ( )
15-
16- const movieId = Number ( formData . get ( 'id' ) )
17- const isFavorite = formData . get ( 'isFavorite' ) === 'true'
18- // Update the movie's favorite status
19- await setIsFavorite ( { movieId, isFavorite } )
13+ await setIsFavorite ( formData )
2014 return { success : true }
2115}
2216
Original file line number Diff line number Diff line change 1+ export async function setIsFavorite ( formData : FormData ) {
2+ // Simulate API call delay
3+ await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
4+
5+ const movieId = Number ( formData . get ( 'id' ) )
6+ const isFavorite = formData . get ( 'isFavorite' ) === 'true'
7+
8+ // Update the movie's favorite status
9+ const movie = movies . find ( ( m ) => m . id === movieId )
10+ if ( movie ) {
11+ movie . isFavorite = isFavorite
12+ }
13+ }
14+
115// Mock data for demonstration
216let movies = [
317 {
@@ -85,20 +99,3 @@ export async function getMovie(id: number) {
8599 }
86100 return movie
87101}
88-
89- export async function setIsFavorite ( {
90- movieId,
91- isFavorite,
92- } : {
93- movieId : number
94- isFavorite : boolean
95- } ) {
96- // Simulate API call delay
97- await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
98-
99- // Update the movie's favorite status
100- const movie = movies . find ( ( m ) => m . id === movieId )
101- if ( movie ) {
102- movie . isFavorite = isFavorite
103- }
104- }
Original file line number Diff line number Diff line change @@ -9,14 +9,8 @@ export async function loader({ params }: Route.LoaderArgs) {
99}
1010
1111export async function action ( { request } : Route . ActionArgs ) {
12- // Simulate API call delay
13- await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
1412 const formData = await request . formData ( )
15-
16- const movieId = Number ( formData . get ( 'id' ) )
17- const isFavorite = formData . get ( 'isFavorite' ) === 'true'
18- // Update the movie's favorite status
19- await setIsFavorite ( { movieId, isFavorite } )
13+ await setIsFavorite ( formData )
2014 return { success : true }
2115}
2216
Original file line number Diff line number Diff line change 11'use server'
22
3+ export async function setIsFavorite ( formData : FormData ) {
4+ // Simulate API call delay
5+ await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
6+
7+ const movieId = Number ( formData . get ( 'id' ) )
8+ const isFavorite = formData . get ( 'isFavorite' ) === 'true'
9+ // Update the movie's favorite status
10+ const movie = movies . find ( ( m ) => m . id === movieId )
11+ if ( movie ) {
12+ movie . isFavorite = isFavorite
13+ }
14+ }
15+
316// Mock data for demonstration
417let movies = [
518 {
@@ -87,16 +100,3 @@ export async function getMovie(id: number) {
87100 }
88101 return movie
89102}
90-
91- export async function setIsFavorite ( formData : FormData ) {
92- // Simulate API call delay
93- await new Promise ( ( resolve ) => setTimeout ( resolve , 50 ) )
94-
95- const movieId = Number ( formData . get ( 'id' ) )
96- const isFavorite = formData . get ( 'isFavorite' ) === 'true'
97- // Update the movie's favorite status
98- const movie = movies . find ( ( m ) => m . id === movieId )
99- if ( movie ) {
100- movie . isFavorite = isFavorite
101- }
102- }
You can’t perform that action at this time.
0 commit comments