Skip to content

Commit 6fdd209

Browse files
committed
Making code readable
1 parent bde5de5 commit 6fdd209

File tree

20 files changed

+550
-246
lines changed

20 files changed

+550
-246
lines changed

exercises/react-vite/09-making-http-requests/01-problem/src/pages/RestaurantList/RestaurantList.tsx

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { State } from "../../services/pmo/restaurant"
22
import CheeseThumbnail from "place-my-order-assets/images/2-thumbnail.jpg"
33
import PoutineThumbnail from "place-my-order-assets/images/4-thumbnail.jpg"
4-
import { useState } from "react"
4+
import { useState, useCallback } from "react"
55
import ListItem from "./ListItem"
66
import { useCities, useStates } from "../../services/pmo/restaurant"
77

@@ -58,6 +58,18 @@ const RestaurantList: React.FC = () => {
5858
setCity(cityName)
5959
}
6060

61+
const chooseStatePlaceholder = useCallback(()=>{
62+
let placeholderText = "Choose a state";
63+
64+
if(statesResponse.isPending) {
65+
placeholderText = "Loading states…";
66+
} else if (statesResponse.error) {
67+
placeholderText = statesResponse.error.message
68+
}
69+
70+
return placeholderText;
71+
}, [statesResponse])
72+
6173
return (
6274
<>
6375
<div className="restaurants">
@@ -75,11 +87,7 @@ const RestaurantList: React.FC = () => {
7587
value={state}
7688
>
7789
<option key="choose_state" value="">
78-
{statesResponse.isPending
79-
? "Loading states…"
80-
: statesResponse.error
81-
? statesResponse.error.message
82-
: "Choose a state"}
90+
{chooseStatePlaceholder()}
8391
</option>
8492
{statesResponse.data?.map(({ short, name }) => (
8593
<option key={short} value={short}>

exercises/react-vite/09-making-http-requests/01-solution/src/pages/RestaurantList/RestaurantList.tsx

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import CheeseThumbnail from "place-my-order-assets/images/2-thumbnail.jpg"
22
import PoutineThumbnail from "place-my-order-assets/images/4-thumbnail.jpg"
3-
import { useState } from "react"
3+
import { useState, useCallback } from "react"
44
import ListItem from "./ListItem"
55
import { useCities, useStates } from "../../services/pmo/restaurant"
66

@@ -54,6 +54,19 @@ const RestaurantList: React.FC = () => {
5454
setCity(cityName)
5555
}
5656

57+
const chooseStatePlaceholder = useCallback(()=>{
58+
let placeholderText = "Choose a state";
59+
60+
if(statesResponse.isPending) {
61+
placeholderText = "Loading states…";
62+
} else if (statesResponse.error) {
63+
placeholderText = statesResponse.error.message
64+
}
65+
66+
return placeholderText;
67+
}, [statesResponse])
68+
69+
5770
return (
5871
<>
5972
<div className="restaurants">
@@ -71,11 +84,7 @@ const RestaurantList: React.FC = () => {
7184
value={state}
7285
>
7386
<option key="choose_state" value="">
74-
{statesResponse.isPending
75-
? "Loading states…"
76-
: statesResponse.error
77-
? statesResponse.error.message
78-
: "Choose a state"}
87+
{chooseStatePlaceholder()}
7988
</option>
8089
{statesResponse.data?.map(({ short, name }) => (
8190
<option key={short} value={short}>

exercises/react-vite/09-making-http-requests/02-problem/src/pages/RestaurantList/RestaurantList.tsx

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import CheeseThumbnail from "place-my-order-assets/images/2-thumbnail.jpg"
22
import PoutineThumbnail from "place-my-order-assets/images/4-thumbnail.jpg"
3-
import { useState } from "react"
3+
import { useState, useCallback } from "react"
44
import { useCities, useStates } from "../../services/pmo/restaurant"
55
import ListItem from "./ListItem"
66

@@ -54,6 +54,32 @@ const RestaurantList: React.FC = () => {
5454
setCity(cityName)
5555
}
5656

57+
const chooseStatePlaceholder = useCallback(()=>{
58+
let placeholderText = "Choose a state";
59+
60+
if(statesResponse.isPending) {
61+
placeholderText = "Loading states…";
62+
} else if (statesResponse.error) {
63+
placeholderText = statesResponse.error.message
64+
}
65+
66+
return placeholderText;
67+
}, [statesResponse])
68+
69+
const chooseCityPlaceholder = useCallback(()=>{
70+
let placeholderText = "Choose a city";
71+
72+
if(!state) {
73+
placeholderText = "Choose a state before selecting a city";
74+
} else if (citiesResponse.isPending) {
75+
placeholderText = "Loading cities…";
76+
} else if (citiesResponse.error) {
77+
placeholderText = citiesResponse.error.message;
78+
}
79+
80+
return placeholderText;
81+
}, [state, citiesResponse])
82+
5783
return (
5884
<>
5985
<div className="restaurants">
@@ -71,11 +97,7 @@ const RestaurantList: React.FC = () => {
7197
value={state}
7298
>
7399
<option key="choose_state" value="">
74-
{statesResponse.isPending
75-
? "Loading states…"
76-
: statesResponse.error
77-
? statesResponse.error.message
78-
: "Choose a state"}
100+
{chooseStatePlaceholder()}
79101
</option>
80102
{statesResponse.data?.map(({ short, name }) => (
81103
<option key={short} value={short}>
@@ -96,13 +118,7 @@ const RestaurantList: React.FC = () => {
96118
value={city}
97119
>
98120
<option key="choose_city" value="">
99-
{state
100-
? citiesResponse.isPending
101-
? "Loading cities…"
102-
: citiesResponse.error
103-
? citiesResponse.error.message
104-
: "Choose a city"
105-
: "Choose a state before selecting a city"}
121+
{chooseCityPlaceholder()}
106122
</option>
107123
{state &&
108124
citiesResponse.data?.map(({ name }) => (

exercises/react-vite/09-making-http-requests/02-solution/src/pages/RestaurantList/RestaurantList.tsx

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import CheeseThumbnail from "place-my-order-assets/images/2-thumbnail.jpg"
22
import PoutineThumbnail from "place-my-order-assets/images/4-thumbnail.jpg"
3-
import { useState } from "react"
3+
import { useState, useCallback } from "react"
44
import { useCities, useStates } from "../../services/pmo/restaurant"
55
import ListItem from "./ListItem"
66

@@ -54,6 +54,32 @@ const RestaurantList: React.FC = () => {
5454
setCity(cityName)
5555
}
5656

57+
const chooseStatePlaceholder = useCallback(()=>{
58+
let placeholderText = "Choose a state";
59+
60+
if(statesResponse.isPending) {
61+
placeholderText = "Loading states…";
62+
} else if (statesResponse.error) {
63+
placeholderText = statesResponse.error.message
64+
}
65+
66+
return placeholderText;
67+
}, [statesResponse])
68+
69+
const chooseCityPlaceholder = useCallback(()=>{
70+
let placeholderText = "Choose a city";
71+
72+
if(!state) {
73+
placeholderText = "Choose a state before selecting a city";
74+
} else if (citiesResponse.isPending) {
75+
placeholderText = "Loading cities…";
76+
} else if (citiesResponse.error) {
77+
placeholderText = citiesResponse.error.message;
78+
}
79+
80+
return placeholderText;
81+
}, [state, citiesResponse])
82+
5783
return (
5884
<>
5985
<div className="restaurants">
@@ -71,11 +97,7 @@ const RestaurantList: React.FC = () => {
7197
value={state}
7298
>
7399
<option key="choose_state" value="">
74-
{statesResponse.isPending
75-
? "Loading states…"
76-
: statesResponse.error
77-
? statesResponse.error.message
78-
: "Choose a state"}
100+
{chooseStatePlaceholder()}
79101
</option>
80102
{statesResponse.data?.map(({ short, name }) => (
81103
<option key={short} value={short}>
@@ -96,13 +118,7 @@ const RestaurantList: React.FC = () => {
96118
value={city}
97119
>
98120
<option key="choose_city" value="">
99-
{state
100-
? citiesResponse.isPending
101-
? "Loading cities…"
102-
: citiesResponse.error
103-
? citiesResponse.error.message
104-
: "Choose a city"
105-
: "Choose a state before selecting a city"}
121+
{chooseCityPlaceholder()}
106122
</option>
107123
{state &&
108124
citiesResponse.data?.map(({ name }) => (

exercises/react-vite/09-making-http-requests/03-problem/src/pages/RestaurantList/RestaurantList.tsx

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import CheeseThumbnail from "place-my-order-assets/images/2-thumbnail.jpg"
22
import PoutineThumbnail from "place-my-order-assets/images/4-thumbnail.jpg"
3-
import { useState } from "react"
3+
import { useState, useCallback } from "react"
44
import { useCities, useStates } from "../../services/pmo/restaurant"
55
import ListItem from "./ListItem"
66

@@ -54,6 +54,32 @@ const RestaurantList: React.FC = () => {
5454
setCity(cityName)
5555
}
5656

57+
const chooseStatePlaceholder = useCallback(()=>{
58+
let placeholderText = "Choose a state";
59+
60+
if(statesResponse.isPending) {
61+
placeholderText = "Loading states…";
62+
} else if (statesResponse.error) {
63+
placeholderText = statesResponse.error.message
64+
}
65+
66+
return placeholderText;
67+
}, [statesResponse])
68+
69+
const chooseCityPlaceholder = useCallback(()=>{
70+
let placeholderText = "Choose a city";
71+
72+
if(!state) {
73+
placeholderText = "Choose a state before selecting a city";
74+
} else if (citiesResponse.isPending) {
75+
placeholderText = "Loading cities…";
76+
} else if (citiesResponse.error) {
77+
placeholderText = citiesResponse.error.message;
78+
}
79+
80+
return placeholderText;
81+
}, [state, citiesResponse])
82+
5783
return (
5884
<>
5985
<div className="restaurants">
@@ -71,11 +97,7 @@ const RestaurantList: React.FC = () => {
7197
value={state}
7298
>
7399
<option key="choose_state" value="">
74-
{statesResponse.isPending
75-
? "Loading states…"
76-
: statesResponse.error
77-
? statesResponse.error.message
78-
: "Choose a state"}
100+
{chooseStatePlaceholder()}
79101
</option>
80102
{statesResponse.data?.map(({ short, name }) => (
81103
<option key={short} value={short}>
@@ -96,13 +118,7 @@ const RestaurantList: React.FC = () => {
96118
value={city}
97119
>
98120
<option key="choose_city" value="">
99-
{state
100-
? citiesResponse.isPending
101-
? "Loading cities…"
102-
: citiesResponse.error
103-
? citiesResponse.error.message
104-
: "Choose a city"
105-
: "Choose a state before selecting a city"}
121+
{chooseCityPlaceholder()}
106122
</option>
107123
{state &&
108124
citiesResponse.data?.map(({ name }) => (

exercises/react-vite/09-making-http-requests/03-solution/src/pages/RestaurantList/RestaurantList.tsx

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import CheeseThumbnail from "place-my-order-assets/images/2-thumbnail.jpg"
22
import PoutineThumbnail from "place-my-order-assets/images/4-thumbnail.jpg"
3-
import { useState } from "react"
3+
import { useState, useCallback } from "react"
44
import { useCities, useStates } from "../../services/pmo/restaurant"
55
import ListItem from "./ListItem"
66

@@ -54,6 +54,32 @@ const RestaurantList: React.FC = () => {
5454
setCity(cityName)
5555
}
5656

57+
const chooseStatePlaceholder = useCallback(()=>{
58+
let placeholderText = "Choose a state";
59+
60+
if(statesResponse.isPending) {
61+
placeholderText = "Loading states…";
62+
} else if (statesResponse.error) {
63+
placeholderText = statesResponse.error.message
64+
}
65+
66+
return placeholderText;
67+
}, [statesResponse])
68+
69+
const chooseCityPlaceholder = useCallback(()=>{
70+
let placeholderText = "Choose a city";
71+
72+
if(!state) {
73+
placeholderText = "Choose a state before selecting a city";
74+
} else if (citiesResponse.isPending) {
75+
placeholderText = "Loading cities…";
76+
} else if (citiesResponse.error) {
77+
placeholderText = citiesResponse.error.message;
78+
}
79+
80+
return placeholderText;
81+
}, [state, citiesResponse])
82+
5783
return (
5884
<>
5985
<div className="restaurants">
@@ -71,11 +97,7 @@ const RestaurantList: React.FC = () => {
7197
value={state}
7298
>
7399
<option key="choose_state" value="">
74-
{statesResponse.isPending
75-
? "Loading states…"
76-
: statesResponse.error
77-
? statesResponse.error.message
78-
: "Choose a state"}
100+
{chooseStatePlaceholder()}
79101
</option>
80102
{statesResponse.data?.map(({ short, name }) => (
81103
<option key={short} value={short}>
@@ -96,13 +118,7 @@ const RestaurantList: React.FC = () => {
96118
value={city}
97119
>
98120
<option key="choose_city" value="">
99-
{state
100-
? citiesResponse.isPending
101-
? "Loading cities…"
102-
: citiesResponse.error
103-
? citiesResponse.error.message
104-
: "Choose a city"
105-
: "Choose a state before selecting a city"}
121+
{chooseCityPlaceholder()}
106122
</option>
107123
{state &&
108124
citiesResponse.data?.map(({ name }) => (

0 commit comments

Comments
 (0)