Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
ab98b35
docs: 영화 목록 불러오기 미션 요구사항 정리
boboyoii Mar 31, 2026
eb0458c
chore: 초기 렌더링 화면 세팅
boboyoii Mar 31, 2026
3ea0f8b
feat: 페이지 번호에 따라 영상 목록을 불러오는 기능 추가
boboyoii Mar 31, 2026
00ff192
feat: 불러온 영화 목록을 화면에 렌더링 하는 기능 추가
boboyoii Mar 31, 2026
2bff17a
reafctor: api 함수 분리
boboyoii Mar 31, 2026
07fd962
refactor: 영화 목록 렌더링 기능 함수 분리
boboyoii Mar 31, 2026
534ade5
feat: 페이지 상단에 평점이 가장 높은 영화 출력 기능 추가
boboyoii Mar 31, 2026
32e6536
feat: 더보기 버튼 클릭 시 영화 목록이 추가되는 기능 추가
boboyoii Mar 31, 2026
d0d406c
feat: 영화 목록 끝에 도달한 경우에 더보기 버튼 숨김 기능 추가
boboyoii Mar 31, 2026
2911dbc
feat: 영화 검색 기능 추가
boboyoii Mar 31, 2026
181716b
feat: 검색 결과가 없을 때 안내메시지 출력 기능 추가
boboyoii Mar 31, 2026
1a4964c
feat: 영화 목록이 렌더링 되기 전에 스켈레턴을 렌더링하는 기능 추가
boboyoii Apr 1, 2026
6a16aa5
test: 영화 목록 조회 기능 테스트
boboyoii Apr 1, 2026
895e47a
test: 영화 검색 기능 테스트 추가
boboyoii Apr 1, 2026
99c3f0e
fix: 검색 더보기 버튼에서 인기 api 호출 되는 문제 수정
boboyoii Apr 1, 2026
9877f63
refactor: 렌더링하는 함수 파일로 분리 및 검색 기능의 공통 함수 분리
boboyoii Apr 1, 2026
29f0b85
refactor: 렌더 함수 컴포넌트 별로 파일 분리
boboyoii Apr 2, 2026
1c62e42
refactor: 페이지 상태값 클래스로 관리
boboyoii Apr 2, 2026
fcf82b3
feat: 검색어가 입력되지 않을 경우 검색 기능이 수행되지 않도록 하는 기능
boboyoii Apr 2, 2026
3c5b5a3
feat: api 반환 값이 200이 아닐 경우 에러 메시지를 띄우는 기능 추가
boboyoii Apr 2, 2026
4aa9426
style: 검색창과 검색 입력시 결과 없음 스타일 적용
boboyoii Apr 2, 2026
5815f2c
chore: 에러메시지 수정
boboyoii Apr 2, 2026
f190475
test: api 테스트 목업데이터 구조 수정
boboyoii Apr 2, 2026
982c938
chore: 이미지, style 경로 수정
boboyoii Apr 2, 2026
fb1b181
fix: poster_path 가 비어 있는 경우 Fallback img 대신 사용
Apr 5, 2026
79f0277
fix: 서버에서 준 인기 영화 리스트 데이터를 매핑 처리
Apr 5, 2026
ecf9cc0
fix: getTopRatedMovie, getSearchMovie 에도 매핑 처리 추가
Apr 5, 2026
e3a2c5c
refactor: fromMovieDto의 매개변수 타입을 unknown 으로 처리
Apr 6, 2026
9be31cd
refactor: isObject 로 객체여부 검증 함수 처리
Apr 6, 2026
4092629
refactor: isObject 리턴 타입에 타입가드 적용
Apr 6, 2026
7ded50b
refactor: 중복되는 영화 목록 파싱 로직을 parseMovies 함수로 분리
Apr 6, 2026
45dbcfa
refactor: mapper 함수 별도 파일로 분리
Apr 6, 2026
3ddfbc8
refactor: isObject 함수를 utils/type-guards/ 로 따로 뺌
Apr 6, 2026
2bed519
fix: 상단 평점 영화 이미지 의 필드가 nullable 한 경우 처리
Apr 6, 2026
783436e
fix: 서버에서 넘겨준 backdrop_path 타입등에 문제가 있을떄 api 단에서 처리
Apr 6, 2026
b987d9e
fix: 상단 배너 데이터 없을떄 빈 배열인 경우 처리 용으로 render 함수에 movie 데이터만 넘김
Apr 6, 2026
0dd994b
refactor: 평점 데이터 없는 경우 ui 처리 안함을 render 함수 내부로 옮김
Apr 6, 2026
509c2f3
fix: 이미지 및 css 파일 경로 / 절대 경로로 맞추기
Apr 6, 2026
a67f5de
fix: 상단 배너 보여줄때 remove 에서 처리한 부분 복원
Apr 6, 2026
d56b460
fix: skeleton 의 animation 처리를 요청시 바로 시작하기
Apr 6, 2026
7b4b761
fix: skeleton 최소 노출 시간 줄이기
Apr 6, 2026
41b58b5
fix: 최소유지 시간 과 제거시간 구분처리
Apr 6, 2026
b70bf05
refactor: remaining값 재처리로 중복 코드 제거
Apr 6, 2026
c30ba97
fix: skeleton ui로인하여 클릭 등 안되던 문제 해결
Apr 6, 2026
7a173e7
fix: 검색 버튼 클릭시 검색 요청이 실제로 발생하지 않았는지 체크
Apr 6, 2026
4ea83d1
fix: 요구사항 정책에 맞추지 않고 이전 개수 대비 증가 체크
Apr 6, 2026
f7dbde5
fix: api 함수 응답값 실패 처리를 공통 형식으로 맞추기
Apr 6, 2026
5cf6dc9
fix: 서버응답이 있는 에러에 대한 ui 처리 추가
Apr 6, 2026
ee4b76f
fix: fetch 함수 공통화
Apr 6, 2026
0add2d3
refactor: 공통 api 호출함수에 method, query 받아서 처리하도록 변경
Apr 6, 2026
7b919eb
fix: encodeURICompoenent 를 사용해서 query의 value값 직렬화
Apr 6, 2026
e39ed1f
fix: URLSearchParams를 이용해서 query 처리
Apr 6, 2026
c39956b
fix: query (query string) 를 fetch 공통 함수에 넘겨서 처리
Apr 6, 2026
33b42d5
fix: 검색어가 주소창에 남아 있는 경우 검색어 ui로 처리
Apr 6, 2026
383f6bf
fix: initload로 처음 로드 데이터 분기 처리 함수 따로 빼기
Apr 6, 2026
824e4fc
docs: step2의 요구사항 문서화
Apr 7, 2026
7556c98
feat: 모달 안의 내 평점 ui 디자인 구현
Apr 7, 2026
480c41e
feat: modal html 을 index.html 에 template 으로 넣기
Apr 7, 2026
6f9fb27
feat: modal html 을 index.html 에 template 으로 넣기
Apr 7, 2026
adc8774
feat: modal template 내 dom에 id 달기 for data binding
Apr 7, 2026
2f1843d
test: 상세 영화 데이터 fixtures 추가
Apr 8, 2026
e147eb9
test: 상세 영화 정보 팝업 관련 테스트
Apr 8, 2026
5255031
feat: 상세 movie api 응답값용 dto 추가
Apr 8, 2026
9f6deef
feat: 상세 영화 api 용 함수 추가
Apr 8, 2026
01f13a9
feat: 영화 리스트를 클릭시 상세 영화 팝업 여는 handler 연결
Apr 8, 2026
585d5af
feat: 영화 상세 팝업 data binding 처리
Apr 9, 2026
ddbf63a
feat: 상세 팝업 창 닫기 처리 - 닫기 버튼 클릭시, esc 입력시
Apr 9, 2026
5171a10
test: 더보기 버튼 클릭으로 영화 목록 추가 렌더링 테스트를 무한 스크롤 이벤트 테스트로 변경
Apr 9, 2026
f6c94bc
refactor: 더보기 버튼 클릭 이벤트 핸들러 함수로 추출
Apr 9, 2026
3df3693
feat: 스크롤을 끝까지 했을때 영화 목록 더 불러오기
Apr 9, 2026
c443bbc
refactor: handleMoverDetail 함수 위치를 main.ts 파일 내에서 변경 - for 그룹핑
Apr 9, 2026
0c5497a
test: 검색 테스트에서 더보기 버튼 클릭 이벤트 테스트를 스크롤 테스트로 변경
Apr 9, 2026
56ce513
test: 테스트 코드 오류 수정 - 스크롤을 끝까지 내리고 나서 더 영화 목록이 추가되지 않음을 확인
Apr 9, 2026
5c917bb
feat: 서버로부터 받은 데이터 중 총 페이지 수 상태 관리 추가
Apr 9, 2026
2f66cc2
feat: 서버로부터 받은 영화목록 값(인기, 검색) 중 총 페이수 저장
Apr 9, 2026
9b358b8
feat: 저장된 총 페이지 수와 현재 페이지 수 비교후 같으면 api 요청 및 렌더링 하지 않기
Apr 9, 2026
d614acb
refactor: 스크롤을 다 내렸는지 검사하는 로직을 함수로 추출
Apr 9, 2026
28c70fb
feat: 반응형 디자인 구현
Apr 9, 2026
39ee4bc
fix: 모달 반응형 디자인의 break-point 조정
Apr 9, 2026
15ae7f4
test: 평점 영화 테스트 추가
Apr 11, 2026
8d0b144
feat: 내 별점의 별에 클릭 이벤트 바인딩 처리
Apr 11, 2026
e1200c0
feat: localStorage에 평가한 별점 저장
Apr 11, 2026
d97cd11
feat: 매긴 별점을 렌더링해서 보여준다
Apr 11, 2026
dfcd9c6
fix: 별점에 따른 별 표시 on 처리를 remove 하는 경우도 포함
Apr 11, 2026
aea2ed7
feat: 상세 영화 모달 오픈시 매겼던 영화 평점 보여주기
Apr 11, 2026
c8dbfa8
fix: 매겼던 영화 평점이 안보이는 오류 수정
Apr 11, 2026
0c155c1
fix: 별점 저장 localStorage key 값 오타 수정
Apr 11, 2026
f053897
refactor: 매긴 별점 렌더링 하는 함수에게 별점 넘겨서 처리
Apr 11, 2026
5dfd957
feat: 매긴 평점 숫자및 의미 노출
Apr 11, 2026
dd015be
test: 별점 선택 별 index 오류 수정
Apr 11, 2026
4487d6d
test: 별점 렌더링 확인 및 별점 재 설정 테스트시 이전 별점 체크 상황 만들기
Apr 11, 2026
041cc2b
fix: localStorage 가 비었을때 오류 처리 수정
Apr 11, 2026
b9dbf54
refator: 별점 저장 및 얻기 기능 repository로 추출
Apr 11, 2026
135efbd
refactor: 별점 저장소의 interface 만들고 상속 받음
Apr 11, 2026
a15be7a
refactor: 공통 fetch 함수 분리
Apr 11, 2026
601cc76
refactor: fetch 공통함수 고도화
Apr 11, 2026
2fc6da2
feat: 더보기 버튼 삭제 및 이벤트 삭제
Apr 11, 2026
53c7210
fix: 새로고침시 page1과 page2 요청이 둘다 바로 일어나는 버그 수정 - isFetching 변수 도입
Apr 13, 2026
a47ac4c
Merge branch 'step2-fetch' into step2
Apr 13, 2026
2ab5dde
Merge branch 'stardusty-lab' into step2
Apr 13, 2026
9e055cf
feat: errorMessages 상수변수 사용, 메시지 보여주는 처리 함수 사용 미반영분 추가 처리
Apr 13, 2026
0eb6e9e
Merge branch 'step2' into step2-infiniate-scroll
Apr 13, 2026
60c32f4
feat: isFetching 변수 감싸서 처리
Apr 13, 2026
9e41d07
fix: isFetching 변수를 api 호출 성공 여부와 관계 없이 초기화
Apr 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,33 @@ FE 레벨1 영화 리뷰 미션입니다.
- [x] 검색어가 입력되지 않았을 때 검색 기능이 수행되지 않도록 한다.
- [x] api 반환 값이 200이 아닐 경우 에러 메시지를 모달로 보여준다.
- [ ] api가 정상적으로 동작하지 않을 경우 에러 메시지를 모달로 보여준다.

# 2단계

## 상세 팝업
- [ ] 포스터나 제목을 클릭시 자세한 예고편이나 줄거리 등이 정보를 보여주는 팝업이 뜬다
- [ ] ESC 를 누르면 팝업이 닫힌다

## 별점
- [ ] 상세 팝업에서 내 별점 ui에서 사용자가 2점 단위로 10까지 평점을 별을 클릭해서 매길수 있다
- 2점: 최악이예요
- 4점: 별로예요
- 6점: 보통이에요
- 8점: 재미있어요
- 10점: 명작이에요
- [ ] 평점을 저장할 곳은 1차: localStorage -> 2 차 db(api 호출)로 갈아끼울수 있는 것을 고려해서 구현한다
- [ ] 상세 팝업에서 자신이 매긴 평점을 확인할 수 있다
- [ ] 새로고침시 평점이 유지가 되어야 한다


## 무한 스크롤
- [ ] 영화 목록에서 더보기 버튼 클릭 대신 사용자가 브라우저 화면의 끝에 도달하면 20개의 목록을 서버에 요청하여 추가로 불러올 수 있다
- [ ] 영화 검색 목록에서 더보기 버튼 클릭 대신 사용자가 브라우저 화면의 끝에 도달하면 20개의 목록을 서버에 요청하여 추가로 불러올 수 있다

## 반응형
- [ ] 영화 목록
- [ ] 영화 검색 목록
- [ ] 영화 상세 팝업
Comment on lines +30 to +53
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

체크리스트 항목 업데이트 필요

PR 설명과 구현된 코드를 보면 상세 팝업, 별점, 무한 스크롤, 반응형 기능이 구현된 것으로 보입니다. 완료된 항목의 체크박스를 [x]로 업데이트하는 것이 좋겠습니다.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 30 - 53, Update the README checklist to mark
implemented features as completed by changing their boxes from [ ] to [x]: under
"## 상세 팝업" mark the popup and ESC behavior done, under "## 별점" mark star-rating,
persistent storage behavior (localStorage->API-ready), rating display in the
popup, and persistence on refresh as done, under "## 무한 스크롤" mark both movie
list and search list infinite-scroll behaviors done, and under "## 반응형" mark the
three responsive items (영화 목록, 영화 검색 목록, 영화 상세 팝업) as done so the README
accurately reflects the implemented code.

- 데스크톱 화면: 팝업 위치 중앙, 이미지 보임
- 태블릿 화면: 팝업 위치 하단, 이미지 보임
- 모바일 화면: 팝업 위치 하단, 이미지 숨김
115 changes: 115 additions & 0 deletions cypress/e2e/movie-detail-modal.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
import { moviesFixture, movieFixture } from "../../test/fixtures";

const mathRound = (value: number, numDigits:number = 1): number => {
return Math.round(value * 10 ** numDigits) / 10 ** numDigits;
}

describe("영화 상세 팝업 기능 테스트", () => {
beforeEach(() => {
cy.intercept("GET", "**/movie/popular?page=1", {
statusCode: 200,
body: {
page: 1,
results: [...moviesFixture],
total_pages: 2,
total_results: 40,
},
}).as("getPopularPage1");

cy.intercept("GET", `**/movie/${movieFixture.id}`, {
statusCode: 200,
body: { ...movieFixture },
}).as("getMovieId");

cy.visit("localhost:5173");
cy.wait("@getPopularPage1");
});

it("제목을 누르면 상세 팝업이 렌더링 된다.", () => {
cy.get("#movie-list li").first().find(".thumbnail").click();

cy.wait("@getMovieId");

cy.get("#modalBackground").should('have.length', 1);
cy.get("#detail-modal-title").should('have.text', movieFixture.title);
cy.get("#detail-modal-img").should('have.attr', 'src').and('include', movieFixture.poster_path);
cy.get("#detail-modal-rate").should('have.text', mathRound(movieFixture.vote_average));
cy.get("#detail-modal-detail").should('have.text', movieFixture.overview);
});

it("닫기버튼을 누르면 상세 팝업이 닫힌다.", () => {
cy.get("#movie-list li").first().find(".thumbnail").click();

cy.wait("@getMovieId");

cy.get("#modalBackground").should('have.length', 1);

cy.get("#closeModal").click();

cy.get("#modalBackground").should('have.length', 0);
});

it("ESC을 입력하면 상세 팝업이 닫힌다.", () => {
cy.get("#movie-list li").first().find(".thumbnail").click();

cy.wait("@getMovieId");

cy.get("#modalBackground").should('have.length', 1);

cy.get("body").type("{esc}");

cy.get("#modalBackground").should('have.length', 0);
});

it("평점 별을 눌러서 평점을 매길수 있다.", () => {
cy.get("#movie-list li").first().find(".thumbnail").click();

cy.wait("@getMovieId");

const rate = 5;

cy.get("#detail-modal-star-box .star").eq(rate - 1).click();

cy.get("#detail-modal-star-box .star.on").should('have.length', rate);
});

it("매겼던 평점을 다시 확인할 수 있다", () => {
cy.get("#movie-list li").first().find(".thumbnail").click();

cy.wait("@getMovieId");

const rate = 5;

cy.get("#detail-modal-star-box .star").eq(rate - 1).click();

cy.get("#detail-modal-star-box .star.on").should('have.length', rate);

cy.get("#closeModal").click();

cy.get("#movie-list li").first().find(".thumbnail").click();

cy.get("#detail-modal-star-box .star.on").should('have.length', rate);
});


it("매겼던 평점을 평점의별을 눌러서 다시 평점을 매길 수 있다", () => {
cy.get("#movie-list li").first().find(".thumbnail").click();

cy.wait("@getMovieId");

const prevRate = 5;
const rate = 1;

cy.get("#detail-modal-star-box .star").eq(prevRate - 1).click();

cy.get("#detail-modal-star-box .star.on").should('have.length', prevRate);

cy.get("#closeModal").click();

cy.get("#movie-list li").first().find(".thumbnail").click();

cy.get("#detail-modal-star-box .star").eq(rate - 1).click();

cy.get("#detail-modal-star-box .star.on").should('have.length', rate);
});
});
19 changes: 12 additions & 7 deletions cypress/e2e/movie-list-rendering.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,22 @@ describe("영화 목록 조회 기능 테스트", () => {
cy.get("#movie-list li").should("have.length.greaterThan", 0);
});

it("더보기 버튼을 누르면 영화 목록이 추가로 생성되어 렌더링 된다.", () => {
cy.get("#more-button").click();
cy.wait("@getPopularPage2");

it("스크롤을 끝까지 내리면 영화 목록이 추가로 생성되어 렌더링 된다.", () => {
cy.scrollTo('bottom', { duration: 500 });
cy.get("#movie-list li").should("have.length.greaterThan", entries);
});

it("마지막 페이지까지 렌더링 됬을때 더보기 버튼을 출력하지 않는다.", () => {
cy.get("#more-button").click();
it("마지막 페이지까지 렌더링 됬을때 스크롤을 끝까지 내려도 영화 리스트를 더 출력하지 않는다.", () => {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

오타 수정

"렌더링 됬을때" → "렌더링 됐을 때"로 수정하면 좋겠습니다.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@cypress/e2e/movie-list-rendering.cy.ts` at line 40, Update the test
description string inside the it(...) block (the test with title "마지막 페이지까지 렌더링
됬을때 스크롤을 끝까지 내려도 영화 리스트를 더 출력하지 않는다.") to correct the Korean typo: change "렌더링
됬을때" to "렌더링 됐을 때" so the title reads "마지막 페이지까지 렌더링 됐을 때 스크롤을 끝까지 내려도 영화 리스트를 더
출력하지 않는다.".

cy.scrollTo('bottom', { duration: 500 });

cy.wait("@getPopularPage2");

cy.get("#more-button").should("not.be.visible");
cy.get("#movie-list li").then((eleBefore) => {
const prevLength = eleBefore.length;

cy.scrollTo('bottom', { duration: 500 });

cy.get("#movie-list li").should("have.length", prevLength);
});
});
});
18 changes: 13 additions & 5 deletions cypress/e2e/movie-search.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,26 +61,34 @@ describe("영화 검색 기능 테스트", () => {
cy.get("#movie-list li").should("have.length.greaterThan", 0);
});

it("검색 후 더보기 버튼을 클릭하면 필터링 된 영화 목록이 추가로 출력된다.", () => {
it("검색 후 스크롤을 끝까지 내리면 필터링 된 영화 목록이 추가로 출력된다.", () => {
cy.get("#search-input").type("스파이");
cy.get("#search-button").click();
cy.wait("@getSearchPage1");

cy.get("#more-button").click();
cy.scrollTo('bottom', { duration: 500 });

cy.wait("@getSearchPage2");

cy.get("#movie-list li").should("have.length.greaterThan", entries);
});

it("필터링 된 영화 목록이 마지막 페이지면 더보기 버튼을 출력하지 않는다.", () => {
it("필터링 된 영화 목록이 마지막 페이지면 스크롤을 끝까지 내려도 필터링된 영화 리스트를 더 출력하지 않는다.", () => {
cy.get("#search-input").type("스파이");
cy.get("#search-button").click();
cy.wait("@getSearchPage1");

cy.get("#more-button").click();
cy.scrollTo('bottom', { duration: 500 });

cy.wait("@getSearchPage2");

cy.get("#more-button").should("not.be.visible");
cy.get("#movie-list li").then((eleBefore) => {
const prevLength = eleBefore.length;

cy.scrollTo('bottom', { duration: 500 });

cy.get("#movie-list li").should("have.length", prevLength);
});
});

it("검색 결과가 없을 때는 안내메시지를 출력한다.", () => {
Expand Down
53 changes: 51 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<link rel="stylesheet" href="/styles/skeleton.css" />
<link rel="stylesheet" href="/styles/search.css" />
<link rel="stylesheet" href="/styles/message-box.css" />
<link rel="stylesheet" href="/styles/modal.css" />
<title>영화 리뷰</title>
</head>
<body>
Expand Down Expand Up @@ -65,16 +66,64 @@ <h2 id="movie-list-title">지금 인기 있는 영화</h2>
</template>
<ul class="thumbnail-list skeleton-list" id="skeleton"></ul>
<ul class="thumbnail-list" id="movie-list"></ul>
<button class="primary" id="more-button">더보기</button>
</section>
</main>
</div>

<footer class="footer">
<p>&copy; 우아한테크코스 All Rights Reserved.</p>
<p><img src="./images/woowacourse_logo.png" width="180" /></p>
<p><img src="/images/woowacourse_logo.png" width="180" /></p>
</footer>
</div>

<div id="modal"></div>
<template id="detail-modal-template">
<div class="modal-background active" id="modalBackground">
<div class="modal">
<button class="close-modal" id="closeModal">
<img src="./images/modal_button_close.png" />
</button>
<div class="modal-container">
<div class="modal-image">
<img src="" alt="" id="detail-modal-img" />
</div>
<div class="modal-description">
<h2 id="detail-modal-title"></h2>
<p class="category" id="detail-modal-category"></p>
<p class="rate">
<img src="./images/star_filled.png" class="star" />
<span id="detail-modal-rate"></span>
</p>
<hr />
<h3>내 별점</h3>
<div class="rate-star">
<div class="star-box" id="detail-modal-star-box">
<span class="star"></span>
<span class="star"></span>
<span class="star"></span>
<span class="star"></span>
<span class="star"></span>
</div>
<p class="star-message-box">
<span
class="star-message"
id="detail-modal-star-message"
></span>
<span
class="star-number"
id="detail-modal-star-number"
></span>
</p>
</div>

<hr />
<h3>줄거리</h3>
<p class="detail" id="detail-modal-detail"></p>
</div>
</div>
</div>
</div>
</template>
<script type="module" src="./src/main.ts"></script>
</body>
</html>
Expand Down
4 changes: 2 additions & 2 deletions public/styles/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ button.primary {
}

#wrap {
min-width: 1440px;
/* min-width: 1440px; */
background-color: var(--color-bluegray-100);
margin: 0 auto;
padding: 0 80px;
Expand All @@ -61,7 +61,7 @@ button.primary {
}

.container {
max-width: 1280px;
/* max-width: 1280px; */
margin: 0 auto;
}

Expand Down
Loading