Skip to content

[김치영] 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
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5f8456d
feat: item 상세페이지의 description 컴포넌트 구현 완료
Chiman2937 May 19, 2025
d0ed0b0
Merge branch 'React-김치영-sprint6' into React-김치영-sprint7
Chiman2937 May 19, 2025
5e3ade6
feat: 미션7 초안 작성 완료
Chiman2937 May 19, 2025
9e1b8d7
feat: 미션7 기능구현 완료
Chiman2937 May 20, 2025
495dd50
refactor: items 페이지, comment 페이지 세부 컴포넌트 분리
Chiman2937 May 22, 2025
89e9efe
fix: SortDropDown e.currentTarget 프로퍼티 오타 수정
Chiman2937 May 22, 2025
2fea70b
refactor: section, 세부컴포넌트 별로 폴더 관리구조 변경
Chiman2937 May 22, 2025
01fb84e
refactor: kebabbutton 컴포넌트에 dropdown 포함
Chiman2937 May 22, 2025
61fbb86
refactor: KebabButton → KebabMenu로 컴포넌트 이름 변경, 폴더 위치 변경
Chiman2937 May 22, 2025
31200ae
refactor: pagination, paginationButton 컴포넌트 common component 폴더로 이동
Chiman2937 May 22, 2025
04fec21
refactor: SocialLogin 컴포넌트를 AuthPage sections 폴더로 이동
Chiman2937 May 22, 2025
51b869d
refactor: BestItems, CurrentItems 컴포넌트를 ItemsPage sections 폴더로 이동
Chiman2937 May 22, 2025
243b9ba
refactor: 댓글 전체를 포함하는 commentsContainer로 컴포넌트 분리
Chiman2937 May 22, 2025
db78535
refactor: comment 관련 컴포넌트를 comments 폴더로 이동
Chiman2937 May 22, 2025
a42f153
refactor: ItemsContainer.jsx를 common 폴더로 이동
Chiman2937 May 22, 2025
ebbece1
refactor: 공통 스타일 ItemsSection.module.css을 best, current기준으로 분리
Chiman2937 May 22, 2025
586a2e8
refactor: 이미지 에러처리 로직을 포함한 ItemImageViewer 컴포넌트 생성
Chiman2937 May 22, 2025
579393b
refactor: ItemDetailsSection 제목, 내용, 메타데이터 컴포넌트로 분리
Chiman2937 May 22, 2025
74c7e8b
feat: 상품상세페이지 댓글 로딩스피너 적용
Chiman2937 May 22, 2025
c34223e
feat: 업데이트 시간 포맷 규칙 추가(formatTimeStamp)
Chiman2937 May 22, 2025
3cae46f
refactor: ItemComments 컴포넌트 이름 변경(ItemCommentsSection)
Chiman2937 May 22, 2025
4202a6e
fix: 댓글의 kebab버튼 클릭 후 드롭다운이 열렸을 때 다음 댓글창에 가려지는 현상 수정
Chiman2937 May 22, 2025
db1ff30
test: 빌드 오류로 폴더명 임시 변경
Chiman2937 May 22, 2025
f0f4fd1
test: 빌드 오류로 폴더명 임시 변경 건 원복(layout)
Chiman2937 May 22, 2025
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
190 changes: 180 additions & 10 deletions README.md
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
Copy link
Collaborator

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

│ │ │ │ ├─ 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.
```
Binary file added public/images/ic_back.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/ic_kebab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/img_comment_none.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 8 additions & 4 deletions src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { BrowserRouter, Routes, Route } from "react-router-dom";
import { LoginStateProvider } from "./contexts/LoginStateContext";
import { LoginProvider } from "./contexts/LoginContext";
import HomePage from "./pages/HomePage/HomePage";
import LoginPage from "./pages/AuthPage/LoginPage";
import SignupPage from "./pages/AuthPage/SignupPage";
Expand All @@ -8,15 +8,19 @@ import AddItemPage from "./pages/AddItemPage/AddItemPage";
import PrivacyPage from "./pages/PrivacyPage/PrivacyPage";
import FaqPage from "./pages/FaqPage/FaqPage";
import BoardPage from "./pages/BoardPage/BoardPage";
import ItemDetailsPage from "./pages/ItemDetailsPage/ItemDetailsPage";

function App() {
return (
<BrowserRouter>
<LoginStateProvider>
<LoginProvider>
<Routes>
<Route path="/">
<Route index element={<HomePage />} />
<Route path="items" element={<ItemsPage />} />
<Route path="items">
<Route index element={<ItemsPage />} />
<Route path=":itemId" element={<ItemDetailsPage />} />
</Route>
<Route path="board" element={<BoardPage />} />
<Route path="additem" element={<AddItemPage />} />
<Route path="privacy" element={<PrivacyPage />} />
Expand All @@ -25,7 +29,7 @@ function App() {
<Route path="/login" element={<LoginPage />} />
<Route path="/signup" element={<SignupPage />} />
</Routes>
</LoginStateProvider>
</LoginProvider>
</BrowserRouter>
);
}
Expand Down
2 changes: 2 additions & 0 deletions src/common.css
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ body {
font-weight: 600;
font-family: 'Pretendard';
border: none;
cursor: pointer;
}

.button-style:hover {
Expand All @@ -42,6 +43,7 @@ body {

.button-style:disabled {
background-color: var(--color-gray400);
cursor: auto;
}

@font-face {
Expand Down
44 changes: 0 additions & 44 deletions src/components/BestItemsSection.jsx

This file was deleted.

Loading
Loading