ย index.html์ ์คํํ ์ ํญ์ API๋ฅผ ์๋ก ๋ฐ์์์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ง ์๊ณ ๊ณ์ ์ด๊ธฐํ๋๋ ํ์์ด ๋ฐ์ํ๋ค.
// ์ด๋ฏธ ๋ถ๋ฌ์๋ ์ํ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์ ๋ถ๋ฌ์ค๋๋ก
if (JSON.parse(localStorage.getItem("movies")) === null) {
console.log("----์ํ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ต๋๋ค----");
callGetMoviesAPI();
} else if (searchMovies === null) {
const filteredMovieData = movies.map((movie) => JSON.parse(localStorage.getItem(movie)));
displayMovieData(filteredMovieData);
} else {
// ๊ฒ์ ์ค์ธ text๊ฐ ์์ผ๋ฉด ํด๋น text๊ฐ title์ ํฌํจ๋์ด ์๋ ์ํ๋ง ๋์ด
let contentMovie = search_movie(searchMovies);
displayMovieData(contentMovie);
}
ย ์กฐ๊ฑด๋ฌธ์ ํ์ฉํ์ฌ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ํ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ API๋ฅผ ๋ฐ์์ค์ง ์๋๋ก ์์ ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
ย
ย ๋ฉ์ธํ์ด์ง, ์์ธํ์ด์ง์์ ๋์ผํ ๋์์ธ์ผ๋ก ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ๋ ์์์ธ ํค๋๋ฅผ ์น ์ปดํฌ๋ํธ๋ก ๋ฐ๋ก ๊ตฌํ์ ํด๋ดค๋ค. ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํด๋ณด๋ ๊ฒ์ ์ฒ์์ด๋ผ ์ข ํค๋งธ์ง๋ง, ๋ง๋ค์ด ๋๊ณ ๋๋ ๊ฒ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ฐ ํจ์ฌ ์ฌ์์ ธ์ ์ข์๋ค.
class HeaderComponent extends HTMLElement {
connectedCallback() {
// Add your HTML template
this.innerHTML = `
<nav class="menubar-top">
<img id="representive-mark" src="style/image/icon.png" />
<form class="search-div" id="search_form">
<input type="text" placeholder="search..." id="searchText" autofocus />
<img src="style/image/search_icon.png" class="icon-search" id="handleSearch" alt="๊ฒ์ ์์ด์ฝ" />
</form>
</nav>
`;
// Add your event listeners
this.setEventReset();
this.setEventSearch();
}
}
customElements.define("movie-header", HeaderComponent);