Skip to content

Commit 73c49c5

Browse files
Update App.js
1 parent d748dde commit 73c49c5

File tree

1 file changed

+85
-62
lines changed

1 file changed

+85
-62
lines changed

react-movie-app/src/App.js

Lines changed: 85 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
import React, {useState} from 'react';
1+
import React, {
2+
useState
3+
} from 'react';
24
import styled from 'styled-components';
35
import Axios from 'axios';
46

@@ -7,7 +9,7 @@ import MovieComponent from './Components/MovieComponent';
79
import MovieInfoComponent from './Components/MovieInfoComponent';
810

911

10-
export const API_KEY = "50659391"
12+
export const API_KEY = "50659391"
1113

1214
const Container = styled.div`
1315
display: flex;
@@ -81,63 +83,84 @@ const Placeholder = styled.img`
8183

8284
function App() {
8385

84-
const [searchQuery, updateSearchQuery] = useState("");
85-
const [timeoutId, updateTimeoutId] = useState();
86-
const [movieList, updateMovieList] = useState([]);
87-
const [selectedMovie, onMovieSelect] = useState();
88-
89-
const fetchData = async (searchString) => {
90-
const response = await Axios.get(
91-
`https://www.omdbapi.com/?s=${searchString}&apikey=${API_KEY}`,
92-
);
93-
// console.log(response.data);
94-
updateMovieList(response.data.Search);
95-
};
96-
97-
const onTextChange = (e) => {
98-
// onMovieSelect("")
99-
clearTimeout(timeoutId);
100-
updateSearchQuery(e.target.value);
101-
const timeout = setTimeout(() => fetchData(e.target.value), 500);
102-
updateTimeoutId(timeout);
103-
};
104-
105-
return (
106-
<Container>
107-
<Header>
108-
<AppName>
109-
<MovieImage src="/movie-icon.svg" />
110-
React Movie App
111-
</AppName>
112-
<SearchBox>
113-
<SearchIcon src="/search-icon.svg" />
114-
<SearchInput
115-
placeholder="Search Movie"
116-
value={searchQuery}
117-
onChange={onTextChange}
118-
/>
119-
</SearchBox>
120-
</Header>
121-
122-
{selectedMovie && <MovieInfoComponent
123-
selectedMovie={selectedMovie}
124-
onMovieSelect={onMovieSelect}/>}
125-
126-
<MovieListContainer>
127-
{
128-
movieList.length
129-
? movieList.map( (movie, index)=>
130-
<MovieComponent
131-
key={index}
132-
movie={movie}
133-
onMovieSelect = {onMovieSelect}
134-
/>)
135-
: <Placeholder src="/movie-icon.svg" alt="placeholder" />
136-
}
137-
138-
</MovieListContainer>
139-
</Container>
140-
);
141-
}
142-
143-
export default App;
86+
const [searchQuery, updateSearchQuery] = useState("");
87+
const [timeoutId, updateTimeoutId] = useState();
88+
const [movieList, updateMovieList] = useState([]);
89+
const [selectedMovie, onMovieSelect] = useState();
90+
91+
const fetchData = async (searchString) => {
92+
const response = await Axios.get(
93+
`https://www.omdbapi.com/?s=${searchString}&apikey=${API_KEY}`,
94+
);
95+
// console.log(response.data);
96+
updateMovieList(response.data.Search);
97+
};
98+
99+
const onTextChange = (e) => {
100+
// onMovieSelect("")
101+
clearTimeout(timeoutId);
102+
updateSearchQuery(e.target.value);
103+
const timeout = setTimeout(() => fetchData(e.target.value), 500);
104+
updateTimeoutId(timeout);
105+
};
106+
107+
return ( <
108+
Container >
109+
<
110+
Header >
111+
<
112+
AppName >
113+
<
114+
MovieImage src = "/movie-icon.svg" / >
115+
React Movie App <
116+
/AppName> <
117+
SearchBox >
118+
<
119+
SearchIcon src = "/search-icon.svg" / >
120+
<
121+
SearchInput placeholder = "Search Movie"
122+
value = {
123+
searchQuery
124+
}
125+
onChange = {
126+
onTextChange
127+
}
128+
/> <
129+
/SearchBox> <
130+
/Header>
131+
132+
{
133+
selectedMovie && < MovieInfoComponent
134+
selectedMovie = {
135+
selectedMovie
136+
}
137+
onMovieSelect = {
138+
onMovieSelect
139+
}
140+
/>}
141+
142+
<
143+
MovieListContainer > {
144+
movieList.length ?
145+
movieList.map((movie, index) =>
146+
<
147+
MovieComponent key = {
148+
index
149+
}
150+
movie = {
151+
movie
152+
}
153+
onMovieSelect = {
154+
onMovieSelect
155+
}
156+
/>) : < Placeholder src = "/movie-icon.svg"
157+
alt = "placeholder" / >
158+
}
159+
160+
<
161+
/MovieListContainer> <
162+
/Container>
163+
);
164+
}
165+
166+
export default App;

0 commit comments

Comments
 (0)