-
Notifications
You must be signed in to change notification settings - Fork 42
[김치영] sprint7 #174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
addiescode-sj
merged 24 commits into
codeit-bootcamp-frontend:React-김치영
from
Chiman2937:React-김치영-sprint7
Jun 19, 2025
The head ref may contain hidden characters: "React-\uAE40\uCE58\uC601-sprint7"
Merged
[김치영] sprint7 #174
Changes from all commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
5f8456d
feat: item 상세페이지의 description 컴포넌트 구현 완료
Chiman2937 d0ed0b0
Merge branch 'React-김치영-sprint6' into React-김치영-sprint7
Chiman2937 5e3ade6
feat: 미션7 초안 작성 완료
Chiman2937 9e1b8d7
feat: 미션7 기능구현 완료
Chiman2937 495dd50
refactor: items 페이지, comment 페이지 세부 컴포넌트 분리
Chiman2937 89e9efe
fix: SortDropDown e.currentTarget 프로퍼티 오타 수정
Chiman2937 2fea70b
refactor: section, 세부컴포넌트 별로 폴더 관리구조 변경
Chiman2937 01fb84e
refactor: kebabbutton 컴포넌트에 dropdown 포함
Chiman2937 61fbb86
refactor: KebabButton → KebabMenu로 컴포넌트 이름 변경, 폴더 위치 변경
Chiman2937 31200ae
refactor: pagination, paginationButton 컴포넌트 common component 폴더로 이동
Chiman2937 04fec21
refactor: SocialLogin 컴포넌트를 AuthPage sections 폴더로 이동
Chiman2937 51b869d
refactor: BestItems, CurrentItems 컴포넌트를 ItemsPage sections 폴더로 이동
Chiman2937 243b9ba
refactor: 댓글 전체를 포함하는 commentsContainer로 컴포넌트 분리
Chiman2937 db78535
refactor: comment 관련 컴포넌트를 comments 폴더로 이동
Chiman2937 a42f153
refactor: ItemsContainer.jsx를 common 폴더로 이동
Chiman2937 ebbece1
refactor: 공통 스타일 ItemsSection.module.css을 best, current기준으로 분리
Chiman2937 586a2e8
refactor: 이미지 에러처리 로직을 포함한 ItemImageViewer 컴포넌트 생성
Chiman2937 579393b
refactor: ItemDetailsSection 제목, 내용, 메타데이터 컴포넌트로 분리
Chiman2937 74c7e8b
feat: 상품상세페이지 댓글 로딩스피너 적용
Chiman2937 c34223e
feat: 업데이트 시간 포맷 규칙 추가(formatTimeStamp)
Chiman2937 3cae46f
refactor: ItemComments 컴포넌트 이름 변경(ItemCommentsSection)
Chiman2937 4202a6e
fix: 댓글의 kebab버튼 클릭 후 드롭다운이 열렸을 때 다음 댓글창에 가려지는 현상 수정
Chiman2937 db1ff30
test: 빌드 오류로 폴더명 임시 변경
Chiman2937 f0f4fd1
test: 빌드 오류로 폴더명 임시 변경 건 원복(layout)
Chiman2937 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,182 @@ | ||
# React + Vite | ||
|
||
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. | ||
``` | ||
16-Sprint-Mission | ||
├─ eslint.config.js | ||
├─ index.html | ||
├─ package-lock.json | ||
├─ package.json | ||
├─ public | ||
│ ├─ images | ||
│ │ ├─ icon_google.png | ||
│ │ ├─ icon_kakao.png | ||
│ │ ├─ icon_password_invisible.png | ||
│ │ ├─ icon_password_visible.png | ||
│ │ ├─ icon_profile.png | ||
│ │ ├─ ic_arrow_down.png | ||
│ │ ├─ ic_back.png | ||
│ │ ├─ ic_facebook.png | ||
│ │ ├─ ic_instagram.png | ||
│ │ ├─ ic_kebab.png | ||
│ │ ├─ ic_nextPageClick_active.png | ||
│ │ ├─ ic_nextPageClick_inactive.png | ||
│ │ ├─ ic_plus.png | ||
│ │ ├─ ic_prevPageClick_active.png | ||
│ │ ├─ ic_prevPageClick_inactive.png | ||
│ │ ├─ ic_search.png | ||
│ │ ├─ ic_sort.png | ||
│ │ ├─ ic_twitter.png | ||
│ │ ├─ ic_X.png | ||
│ │ ├─ ic_youtube.png | ||
│ │ ├─ img_comment_none.png | ||
│ │ ├─ img_favorite_inactive.png | ||
│ │ ├─ Img_home_01 | ||
│ │ │ ├─ Img_home_01@0.5x.png | ||
│ │ │ ├─ Img_home_01@1.5x.png | ||
│ │ │ ├─ Img_home_01@1x.png | ||
│ │ │ └─ Img_home_01@2x.png | ||
│ │ ├─ Img_home_02 | ||
│ │ │ ├─ Img_home_02@0.5x.png | ||
│ │ │ ├─ Img_home_02@1.5x.png | ||
│ │ │ ├─ Img_home_02@1x.png | ||
│ │ │ └─ Img_home_02@2x.png | ||
│ │ ├─ Img_home_03 | ||
│ │ │ ├─ Img_home_03@0.5x.png | ||
│ │ │ ├─ Img_home_03@1.5x.png | ||
│ │ │ ├─ Img_home_03@1x.png | ||
│ │ │ └─ Img_home_03@2x.png | ||
│ │ ├─ Img_home_bottom | ||
│ │ │ ├─ Img_home_bottom@0.5x.png | ||
│ │ │ ├─ Img_home_bottom@1.5x.png | ||
│ │ │ ├─ Img_home_bottom@1x.png | ||
│ │ │ └─ Img_home_bottom@2x.png | ||
│ │ ├─ Img_home_top | ||
│ │ │ ├─ Img_home_top@0.5x.png | ||
│ │ │ ├─ Img_home_top@1.5x.png | ||
│ │ │ ├─ Img_home_top@1x.png | ||
│ │ │ └─ Img_home_top@2x.png | ||
│ │ ├─ img_items_default_md.png | ||
│ │ ├─ Img_logo.png | ||
│ │ └─ Img_openGraph.png | ||
│ └─ _redirects | ||
├─ README.md | ||
├─ src | ||
│ ├─ App.jsx | ||
│ ├─ common.css | ||
│ ├─ components | ||
│ │ ├─ comments | ||
│ │ │ ├─ CommentCard.jsx | ||
│ │ │ ├─ CommentCard.module.css | ||
│ │ │ ├─ CommentEditForm.jsx | ||
│ │ │ ├─ CommentEditForm.module.css | ||
│ │ │ ├─ CommentRequireForm.jsx | ||
│ │ │ ├─ CommentRequireForm.module.css | ||
│ │ │ ├─ CommentsContainer.jsx | ||
│ │ │ ├─ CommentsContainer.module.css | ||
│ │ │ ├─ CommentView.jsx | ||
│ │ │ └─ CommentView.module.css | ||
│ │ ├─ common | ||
│ │ │ ├─ AuthField | ||
│ │ │ │ ├─ AuthField.jsx | ||
│ │ │ │ └─ AuthField.module.css | ||
│ │ │ ├─ Button | ||
│ │ │ ├─ ItemCard | ||
│ │ │ │ ├─ ItemCard.jsx | ||
│ │ │ │ └─ ItemCard.module.css | ||
│ │ │ ├─ ItemCardSkeleton | ||
│ │ │ │ ├─ ItemCardSkeleton.jsx | ||
│ │ │ │ └─ ItemCardSkeleton.module.css | ||
│ │ │ ├─ ItemsContainer | ||
│ │ │ │ ├─ ItemsContainer.jsx | ||
│ │ │ │ └─ ItemsContainer.module.css | ||
│ │ │ ├─ KebabMenu | ||
│ │ │ │ ├─ KebabMenu.jsx | ||
│ │ │ │ └─ KebabMenu.module.css | ||
│ │ │ ├─ Pagination | ||
│ │ │ │ ├─ Pagination.jsx | ||
│ │ │ │ ├─ Pagination.module.css | ||
│ │ │ │ ├─ PaginationButton.jsx | ||
│ │ │ │ └─ PaginationButton.module.css | ||
│ │ │ ├─ PaginationButton | ||
│ │ │ ├─ SearchInput | ||
│ │ │ │ ├─ SearchInput.jsx | ||
│ │ │ │ └─ SearchInput.module.css | ||
│ │ │ └─ SelectDropdown | ||
│ │ │ ├─ SelectDropdown.jsx | ||
│ │ │ └─ SelectDropdown.module.css | ||
│ │ └─ layout | ||
│ │ ├─ LogoHeader | ||
│ │ │ ├─ LogoHeader.jsx | ||
│ │ │ └─ LogoHeader.module.css | ||
│ │ ├─ Nav | ||
│ │ │ ├─ Nav.jsx | ||
│ │ │ └─ Nav.module.css | ||
│ │ └─ profileCard | ||
│ │ ├─ ProfileCard.jsx | ||
│ │ └─ ProfileCard.module.css | ||
│ ├─ constants | ||
│ ├─ contexts | ||
│ │ └─ LoginContext.jsx | ||
│ ├─ fonts | ||
│ │ └─ rokafsansmedium-normal.woff | ||
│ ├─ hooks | ||
│ │ ├─ useAsync.jsx | ||
│ │ ├─ useFormFields.jsx | ||
│ │ ├─ usePageSizeByBreakPoint.jsx | ||
│ │ ├─ usePaginationByOffset.jsx | ||
│ │ ├─ useScreenBreakpoint.jsx | ||
│ │ └─ useSearchQueryString.jsx | ||
│ ├─ main.jsx | ||
│ ├─ pages | ||
│ │ ├─ AddItemPage | ||
│ │ │ ├─ AddItemPage.jsx | ||
│ │ │ └─ AddItemPage.module.css | ||
│ │ ├─ AuthPage | ||
│ │ │ ├─ fieldsConfig.js | ||
│ │ │ ├─ FormAuth.css | ||
│ │ │ ├─ LoginPage.jsx | ||
│ │ │ ├─ sections | ||
│ │ │ │ ├─ SocialLogin.jsx | ||
│ │ │ │ └─ SocialLogin.module.css | ||
│ │ │ └─ SignupPage.jsx | ||
│ │ ├─ BoardPage | ||
│ │ │ └─ BoardPage.jsx | ||
│ │ ├─ FaqPage | ||
│ │ │ └─ FaqPage.jsx | ||
│ │ ├─ HomePage | ||
│ │ │ ├─ Banner.css | ||
│ │ │ ├─ BannerBottom.css | ||
│ │ │ ├─ Card.css | ||
│ │ │ ├─ Cards.css | ||
│ │ │ ├─ Footer.css | ||
│ │ │ ├─ Home.css | ||
│ │ │ ├─ HomePage.jsx | ||
│ │ │ └─ Main.css | ||
│ │ ├─ ItemDetailsPage | ||
│ │ │ ├─ ItemDetailsPage.jsx | ||
│ │ │ ├─ ItemDetailsPage.module.css | ||
│ │ │ └─ sections | ||
│ │ │ ├─ ItemComments.jsx | ||
│ │ │ ├─ ItemComments.module.css | ||
│ │ │ ├─ ItemDetailsSection.jsx | ||
│ │ │ └─ ItemDetailsSection.module.css | ||
│ │ ├─ ItemsPage | ||
│ │ │ ├─ ItemsPage.css | ||
│ │ │ ├─ ItemsPage.jsx | ||
│ │ │ └─ sections | ||
│ │ │ ├─ BestItemsSection.jsx | ||
│ │ │ ├─ CurrentItemsSection | ||
│ │ │ │ ├─ ItemsSearchHeader.jsx | ||
│ │ │ │ └─ ItemsSearchHeader.module.css | ||
│ │ │ ├─ CurrentItemsSection.jsx | ||
│ │ │ └─ ItemsSection.module.css | ||
│ │ └─ PrivacyPage | ||
│ │ └─ PrivacyPage.jsx | ||
│ ├─ reset.css | ||
│ └─ utils | ||
│ ├─ api.js | ||
│ ├─ debounce.js | ||
│ ├─ formatPrice.js | ||
│ └─ validators.js | ||
└─ vite.config.js | ||
|
||
Currently, two official plugins are available: | ||
|
||
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh | ||
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh | ||
|
||
## Expanding the ESLint configuration | ||
|
||
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. | ||
``` |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
src > components 폴더에 common 폴더로 따로 구분해놓을 필요없이, 여러 페이지에서 사용하는 컴포넌트인 경우에만 src > components에 모아두고, CommentsContainer 같이 특정 페이지 (아이템 상세 페이지) 에서 사용하는 컴포넌트의 경우 해당 페이지 컴포넌트 경로와 가까운곳에 components 폴더를 만들고 위치를 옮겨주시면 좋을것같아요.
직접적인 예시:
src > pages > ItemDetailsPage > components > Comments > CommentsContainer