Skip to content
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

[김찬기] Sprint7 #250

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
26be615
feat: axios 및 interceptor 추가
cksrlcks Dec 3, 2024
792b79a
fix: 로그인, 회원가입 페이지 리다이렉트 수정
cksrlcks Dec 3, 2024
8d74dcb
feat: Avatar 컴포넌트 개선 (hover props추가)
cksrlcks Dec 3, 2024
15e167e
feat: Author, Like 컴포넌트 작업
cksrlcks Dec 3, 2024
f2a6d4d
feat: Field Input 스타일 개선
cksrlcks Dec 3, 2024
500e9b1
feat: Tags props 개선
cksrlcks Dec 3, 2024
b9d5270
feat: 목록 버튼 컴포넌트 작업
cksrlcks Dec 3, 2024
68f5595
feat: ui Button 컴포넌트 color props 추가
cksrlcks Dec 3, 2024
53402d2
feat: useForm 훅이 기본값을 받을 수 있게 개선 (수정페이지)
cksrlcks Dec 3, 2024
5dfe94a
feat: 코멘트 작성 스키마 작성
cksrlcks Dec 3, 2024
80a4607
feat: 상품 상세 컴포넌트 작업
cksrlcks Dec 3, 2024
1e74578
feat: 코멘트 리스트, 코멘트 아이템, 코멘트 폼 컴포넌트 작업
cksrlcks Dec 3, 2024
ecfeae9
feat: 아이템 상세페이지 페이지 작업
cksrlcks Dec 3, 2024
88735b3
chore: readme.md 수정 (작업중 발견한 문제점)
cksrlcks Dec 3, 2024
854d9bb
style: dropdown 리스트 위치 조정
cksrlcks Dec 3, 2024
ab956f7
feat: 코멘트 관리 메뉴를 모두 보이게 설정하고, 권한이 있으면 실행 할 수 있도록 변경
cksrlcks Dec 3, 2024
c501d76
feat: 더보기 메뉴 컴포넌트 작업
cksrlcks Dec 3, 2024
5ddd67e
fix: 상품 태그에 # 붙이기
cksrlcks Dec 3, 2024
b80a81b
feat: 상품 수정 페이지 작업
cksrlcks Dec 3, 2024
dbd3cb6
feat: Message 컴포넌트 개선 및 데이터 없을시 노출 설정
cksrlcks Dec 3, 2024
e4ae707
refactor: 코멘트 리스트 마크업 변경 (ul, li)
cksrlcks Dec 3, 2024
d40cbe4
fix: 코멘트 더불러오기 수정 ( 키값 수정)
cksrlcks Dec 3, 2024
2f2e68a
style: 좋아요, 상품 페이지 반응형 스타일 작업
cksrlcks Dec 3, 2024
43aad1d
style: textarea 패딩 조절
cksrlcks Dec 3, 2024
936b324
chore: 코드정리
cksrlcks Dec 3, 2024
e20287a
feat: 문의 삭제전 confirm 기능 추가
cksrlcks Dec 3, 2024
1af4b69
feat: 상품페이지 loader 통신 개선(병렬과 유사하게 요청하도록)
cksrlcks Dec 3, 2024
662f3ae
feat: 페이지 전환시 스크롤 복구 기능 추가
cksrlcks Dec 3, 2024
b776d87
style: 코멘트 본문 줄바꿈 css 적용
cksrlcks Dec 3, 2024
b2e3821
feat: 좋아요 버튼 누를시 새로고침 없이 revalidate 적용, 로그인상태 아닐시 예외처리 적용
cksrlcks Dec 3, 2024
6afc8e8
feat: useForm훅에 초기화 기능 추가( 코멘트 작성 취소에 사용)
cksrlcks Dec 3, 2024
ce34871
chore: readme.md 업데이트
cksrlcks Dec 3, 2024
c3994e8
refactor: 상품 등록/수정 공통부분 리팩토링
cksrlcks Dec 3, 2024
2784a15
chore: 코드정리
cksrlcks Dec 3, 2024
4ffb7bb
feat: axios interceptor에서 abort controller 관리하도록 개선
cksrlcks Dec 4, 2024
a30163a
feat: Message 컴포넌트에 compact props추가
cksrlcks Dec 4, 2024
51ec1ee
refactor: Comment를 공용 컴포넌트로 분리, comment전용 hook 생성
cksrlcks Dec 4, 2024
b515eff
fix: 페이지네이션 이용시 스크롤 복구 방지
cksrlcks Dec 4, 2024
cf3dd96
refactor: usePageSize를 useResponsive로 변경
cksrlcks Dec 4, 2024
1407e72
refactor: useList훅을 useProductList 훅으로 변경
cksrlcks Dec 4, 2024
2d507d7
style: css error color level 추가
cksrlcks Dec 4, 2024
6a1e66c
refactor: Button 컴포넌트 개선
cksrlcks Dec 4, 2024
4fd6a02
style: like 버튼 색상 수정
cksrlcks Dec 4, 2024
b4082b3
fix: 작성자 컴포넌트에 작성일을 수정일로 변경
cksrlcks Dec 4, 2024
f5ceef0
feat: 토큰 검증 로직 추가
cksrlcks Dec 5, 2024
4150519
refactor: 토큰재발급과 유저정보조회 useEffect 분리
cksrlcks Dec 5, 2024
c8d3727
fix: Search 컴포넌트 css에 var 키워드 빠짐 수정
cksrlcks Dec 5, 2024
3dcf1d2
refactor: axios instance 개선
cksrlcks Dec 6, 2024
9fdc485
refactor(mentor): dropdown context api 개선
cksrlcks Dec 6, 2024
cc19b1b
feat: 상품이미지 확대보기 기능추가
cksrlcks Dec 7, 2024
e3e7837
style: 상품이미지 확대보기 모바일 css 추가
cksrlcks Dec 7, 2024
5607dd5
refactor: 썸네일 컴포넌트 코드 정리
cksrlcks Dec 8, 2024
ad2e1bc
styles: Field 입력폼 css module 수정
cksrlcks Dec 8, 2024
009fd07
style: Button 컴포넌트 clsx 수정
cksrlcks Dec 8, 2024
2df54ff
refactor: 페이지와 컴포넌트에서 서비스로직 분리
cksrlcks Dec 8, 2024
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
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,13 @@ state 관리하고 있는 params과 usePageSize로 관리하는 pageSize의 변
- url주소 기반으로 처리하는 useFetch를 쓰게되면, 만약에 api url이 변경되거나 요청전 작업이 수정되면 수정하러 이곳저곳을 돌아다녀야 할 것 같음.
- 비동기 요청함수를 받아서 처리하는 훅으로 만들어둔 useAsync를 쓰는게 더 적합해보임
- 주소를 기반으로 fetch만을 처리하는 훅으로 useFetch를 수정하고 남겨두기로 결정

#### axios와 abortcontroller 사용기

- fetch와 axios는 abort될시에 error name이 다르다.
- 기존 fetch에서는 'AbortError'로 예외처리를 했는데, axios에서는 'CanceledError'로 예외처리를 해야했음.

#### react router의 loader를 사용할시 추가로 설정해줘야했던 설정들

- React의 Suspense와 fallback, React router의 loader, hydrateFallback을 조사해보고 정리해보았습니다.
- https://heavy-bear.tistory.com/13
Copy link
Contributor

Choose a reason for hiding this comment

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

👍

117 changes: 117 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"axios": "^1.7.8",
"clsx": "^2.1.1",
"dayjs": "^1.11.13",
"jwt-decode": "^4.0.0",
"lodash": "^4.17.21",
"react": "^18.2.0",
"react-dom": "^18.2.0",
Expand Down
4 changes: 4 additions & 0 deletions src/assets/img/icon/icon_back.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/assets/img/icon/icon_dots.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions src/assets/img/icon/icon_heart_fill.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions src/assets/img/icon/icon_inquiry_empty.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions src/assets/scss/base/_variables.scss
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
--color-secondary-100: #f3f4f6;
--color-secondary-50: #f9fafb;
--color-error: #f74747;
--color-error-100: #f74747;
--color-error-200: #da2d2d;
--color-error-300: #bd2020;
--color-white: #fff;
--color-grey: #dfdfdf;
--color-black: #4b5563;
Expand Down
1 change: 0 additions & 1 deletion src/assets/scss/common/_index.scss

This file was deleted.

38 changes: 0 additions & 38 deletions src/assets/scss/common/_input.scss

This file was deleted.

1 change: 0 additions & 1 deletion src/assets/scss/style.scss
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
@use "base";
@use "common";
13 changes: 13 additions & 0 deletions src/components/Button/BackToList.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Button } from "@components/ui";
import iconBack from "@assets/img/icon/icon_back.svg";
import styles from "./BackToList.module.scss";

export function BackToList() {
return (
<div className={styles.controls}>
<Button to="/items" size="md">
목록으로 돌아가기 <img src={iconBack} alt="목록으로 돌아가기" />
</Button>
</div>
);
}
7 changes: 7 additions & 0 deletions src/components/Button/BackToList.module.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.controls {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
margin: 4rem 0;
}
22 changes: 22 additions & 0 deletions src/components/Button/More.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { Dropdown } from "@components/ui";
import dotsIcon from "@assets/img/icon/icon_dots.svg";
import styles from "./More.module.scss";

export function More({ options }) {
return (
<Dropdown>
<Dropdown.Toggle>
<div className={styles.icon}>
<img src={dotsIcon} alt="더보기" />
</div>
</Dropdown.Toggle>
<Dropdown.Menu>
{options.map((option) => (
<Dropdown.Item key={option.label} onClick={option.action}>
{option.label}
</Dropdown.Item>
))}
</Dropdown.Menu>
</Dropdown>
);
}
Loading
Loading