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

게시글 작성 시 상세 게시글/카테고리 fetch하는 것을 컴포넌트 분리하여 Suspense와 에러 바운더리를 적용 #362

Merged
merged 25 commits into from
Aug 13, 2023

Conversation

chsua
Copy link
Collaborator

@chsua chsua commented Aug 12, 2023

🔥 연관 이슈

게시글 작성 시 상세 게시글/카테고리 fetch하는 것을 컴포넌트 분리하여 Suspense와 에러 바운더리를 적용
close: #328 : 게시글 작성 시 상세 게시글
close: #329 : 카테고리

📝 작업 요약

-게시글 작성 시 상세 게시글/카테고리 fetch하는 것을 컴포넌트 분리하여 Suspense와 에러 바운더리를 적용

⏰ 소요 시간

  • 4시간
  • 작동하는지 테스트하는 데에 시간이 오래걸림

🔎 작업 상세 설명

  • 게시글 작성 시 상세 게시글 fetch하는 것을 컴포넌트 분리하여 Suspense와 에러 바운더리를 적용
    • 최초 작성에는 글을 패치해오지 않기 때문에 수정 경우에만 suspense/errorBoundery 실행
    • 글을 생성하는 creatPost > creatPostPage로 수정
    • 글을 수정하는 editPost는 editPostPage를 생성해서 안에 넣음
    • 헤더가 폼 안에 포함되어있기 때문에 분리할 수 없었음
    • suspense/errorBoundery와 narrowTemplateHeader를 넣음
    • 기존의 에러바운더리를 상속받은 모바일용 헤더를 가진 에러바운더리 하나 더 생성
//주요 변경 파일/폴더
post
 ┣ CreatePostPage : 기존 creatPost 이름 변경
 ┃ ┗ index.tsx
 ┣ EditPostPage  : 새로 생성
 ┃ ┣ EditPost  : 기존 editPost 이름 변경
 ┃ ┃ ┗ index.tsx
 ┃ ┣ EditPostPage.stories.tsx
 ┃ ┣ index.tsx
 ┃ ┗ style.ts
 ┗ PostDetail

pages
 ┣ ErrorBoundary.tsx : 기존 에러바운더리
 ┣ ErrorBoundaryWithNarrowHeader.tsx : 기존 에러바운더리를 상속받은 모바일 버전에 적용할 수 있는 에러바운더리
 ┗ ErrorBoundaryWithNarrowHeaderStyle.ts: "ErrorBoundaryWithNarrowHeader"에 적용할 스타일드 컴포넌트
  • 게시글 작성 시 카테고리 fetch하는 것을 컴포넌트 분리하여 Suspense와 에러 바운더리를 적용
    • 에러바운더리만 적용
    • 서스펜스를 적용하지 않으면 기본적인 UI가 그려진다고 알고 있는데 카테고리 셀렉터 자리에 대체컴포넌트가 들어가는 것이 어울리지 않는다고 느낌
    • 에러바운더리를 만들어 씌웠으나 테스트를 하고자 하면 사이드바에서 에러가 먼저 터져서 확인할 수 가 없었음..

🌟 논의 사항

테스트가 어려운데 어떻게 하는게 좋을지 모르겟습니다.

@chsua chsua self-assigned this Aug 12, 2023
@chsua chsua requested review from inyeong-kang and Gilpop8663 and removed request for inyeong-kang August 12, 2023 10:26
@chsua chsua changed the title 게시글 작성 시 상세 게시글 불러오는/게시글 작성 시 카테고리 fetch하는 것을 컴포넌트 분리하여 Suspense와 에러 바운더리를 적용 게시글 작성 시 상세 게시글/카테고리 fetch하는 것을 컴포넌트 분리하여 Suspense와 에러 바운더리를 적용 Aug 12, 2023
Copy link
Member

@inyeong-kang inyeong-kang left a comment

Choose a reason for hiding this comment

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

쿼리 관련 궁금한 부분 코멘트 남겼습니다~


export default function CategoryWrapper({ multiSelectHook }: CategoryWrapperProps) {
const { selectedOptionList, handleOptionAdd, handleOptionDelete } = multiSelectHook;
const { isLoggedIn: isLogged } = useContext(AuthContext).loggedInfo;
Copy link
Member

Choose a reason for hiding this comment

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

isLogged 로 키값을 바꾸는 이유가 궁금해요~

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

아 이거 isLoggedIn으로 rename하면서 자동으로 처리된 부분인 것 같습니다! 수정하겠습니다

export default function NarrowTemplateHeader({ children }: { children: ReactNode }) {
interface NarrowTemplateHeaderProps extends PropsWithChildren {}

export default function NarrowTemplateHeader({ children }: NarrowTemplateHeaderProps) {
Copy link
Member

Choose a reason for hiding this comment

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

export default function NarrowTemplateHeader({ children }: PropsWithChildren) {

어떠신가요? props가 children 하나뿐이라면 따로 interface 를 안써도 될거 같단 생각이 들어서요!

@@ -16,6 +17,10 @@ export const usePostDetail = (isGuest: boolean, postId: number) => {
onSuccess: data => {
return data;
},
onError: error => {
queryClient.invalidateQueries([QUERY_KEY.POST_DETAIL, postId]);
Copy link
Member

Choose a reason for hiding this comment

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

데이터 fetch에 실패했는데 기존값을 무효화하는 이유가 궁금합니다..! (mutate가 일어난 경우처럼 기존값이 stale 해진 경우에 invalidate시켜야 하는것 아닌지..? 에러가 발생했으니 기존값은 아직 그대로일텐데..라는 생각이 들어서요🤔)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

오 제가 착각을 했습니다! 수정하겠습니다!

@inyeong-kang
Copy link
Member

혹시 테스트가 어렵다는 것이 msw를 사용하는 경우인가요??

Copy link
Collaborator

@Gilpop8663 Gilpop8663 left a comment

Choose a reason for hiding this comment

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

Suspense와 ErrorBoundary를 디테일 있게 설정한 코드 잘 보았습니다~!

수아 최고 👍👍👍

Comment on lines 20 to 22
onError: error => {
queryClient.invalidateQueries([QUERY_KEY.POST_DETAIL, postId]);
},
Copy link
Collaborator

Choose a reason for hiding this comment

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

에러일 때 초기화하는 이유가 무엇인지 궁금합니다 😃

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

제가 착각을 해서😂 수정했습니다..!


export default function CategoryWrapper({ multiSelectHook }: CategoryWrapperProps) {
const { selectedOptionList, handleOptionAdd, handleOptionDelete } = multiSelectHook;
const { isLoggedIn: isLogged } = useContext(AuthContext).loggedInfo;
Copy link
Collaborator

Choose a reason for hiding this comment

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

isLoggeIn의 변수명을 바꾸신 이유가 궁금해요

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

이전 기능구현에서 수정한 부분인데 rename으로 수정하다보니 자동으로 이렇게 작성된 부분입니다! 수정했습니다!

Copy link
Collaborator

@Gilpop8663 Gilpop8663 left a comment

Choose a reason for hiding this comment

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

코드 변경된 것 확인 후 어프로브 했습니다~👍👍👍

Copy link
Member

@inyeong-kang inyeong-kang left a comment

Choose a reason for hiding this comment

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

확인했습니다~ 고생하셨어요👍

jeomxon and others added 6 commits August 13, 2023 11:19
* feat : (#289) QueryDSl 적용 (다즐 코드 복사)

* feat : (#289) 회원 본인이 작성한 게시글 목록 조회 api 구현

* test : (#289) 테스트 코드 추가

* feat : (#289) swagger 추가

* refactor : (#289) final 추가

* style: (#289) 개행 수정

* refactor: (#289) swagger 수정

* refactor: (#289) 개행 수정

* refactor: (#289) any()에 클래스 명시

* refactor: (#289) result 개수 검증 추가

* refactor: (#289) 개행 추가

* refactor: (#289) thread sleep 제거

* refactor: (#289) 개행 수정

* refactor: (#289) assertAll 묶기

* feat: (#289) 카테고리 정렬 추가

* refactor: (#289) thread sleep 관련 throws InterruptedException 제거

* test: (#289) 테스트코드 추가

* refactor: (#289) 메서드 이름 수정

* refactor: (#289) 테스트 코드 검증 추가

* test: (#290) 충돌 해결
* refactor : (#290) (회원) 게시글 검색 기능 api 추가

* test : (#290) 테스트 코드 추가

* feat : (#290) swagger 추가

* style : (#290) 개행 추가

* refactor: (#289) swagger 예외 응답 어노테이션 추가

* refactor: (#289) 개행, assertAll사용, 클래스이름 대문자, //given 리펙터링

* test: (#289) 제목 + 내용에 둘 다 포함되어있는 키워드 검색 테스트 추가

* test: (#290) 테스트 코드 추가

* refactor: (#290) 충돌 해결

* refactor: (#290) 충돌 해결
…구현 (#343)

* chore: (#183) 불필요한 모듈 삭제

* refactor: (#183) 의존성 배열 추가

* feat: (#253) NotFound 컴포넌트 구현

* feat: (#183) PrivateRoute 구현 및 필요한 페이지에 적용

* feat: (#253) 헤더 및 로고 추가

* feat: (#325) Error 컴포넌트 구현 및 소셜 로그인 요청 실패 케이스에 적용

* refactor: (#325) 다시 시도 라는 문구로 수정

* chore: (#325) 불필요한 코드 삭제

* feat: (#325) Error 컴포넌트 구현 및 get 요청 실패 케이스에 적용

* feat: (#325) IconButton에 retry 아이콘 추가 및 Error 컴포넌트 디자인 수정

* refactor: (#325) Redirection 페이지에 로그인 요청에 대한 로딩 및 에러 컴포넌트 적용, errorElement 삭제

* refactor: (#183) 전역 상태 대신 cookie 유무로 navigate하도록 수정

* refactor: (#183) navigate 대신 Navigate로 수정, 권한 관련 props 추가

* feat: (#183) 작성자인 경우에만 글 수정, 투표 통계 페이지 접근하도록 라우팅 설정

* refactor: (#183) Navigate 불필요한 속성 제거, 페이지 접근 불가능한 경우 alert 구현

* refactor: (#183) props에 할당한 값에 대한 타입 단언 대신, 조건부로 대체 컴포넌트 렌더링하도록 수정

* refactor: (#183) Error 컴포넌트 이름 ErrorMessage로 수정, Error 페이지 및 ErrorMessage 컴포넌트 텍스트 수정
Gilpop8663 and others added 8 commits August 13, 2023 11:21
* refactor: (#324) 대쉬보드에서 카테고리를 불러오고 밖에서 suspense를 이용하도록 수정
대쉬보드 스토리북 사용하지 않는 코드 삭제

* feat: (#324) 에러 바운더리에서 에러 메세지를 렌더하도록 수정
대쉬보드에서 카테고리 불러오는 것을 실패할 때 에러바운더리에서 에러를 잡도록 구현

* fix: (#324) MSW에서 카테고리 리스트를 불러올 때 딜레이가 너무 길어 실패하는 것을 수정

* refactor: (#324) 현재 선택된 게시글 종류 보여주는 로직 PostList,Layout에서 Dashboard로 이동

* refactor: (#324) CategorySection 컴포넌트에서 카테고리 목록을 불러와 보여주도록 구현

* refactor: (#324) ??로 카테고리 리스트가 없다면 빈 배열로 설정하는 중복되는 코드를 제거

* refactor: (#324) 사용하지 않는 코드 삭제 및 스타일드 컴포넌트명 변경
* fix: (#326) 토스트가 안닫히는 오류 수정

* feat: (#326) 게시물 상세페이지 내 안내 토스트 설정 및 삭제시 홈으로 이동 처리

- 게시물 삭제 실패 시 안내메세지
- 게시물 삭제 불가 시 정책 안내메세지
- 게시물 수정 불가 시 정책 안내메세지
- 게시물 신고 실패 시 안내메세지
- 게시물 신고 성공 시 안내메세지

* refactor: (#326)  토스트 메세지를 토스트 훅과 통합 및 무한토스트 오류 해결

* feat: (#326) 글작성/수정 실패 시 토스트 컴포넌트 등장 구현 및 토스트 훅 수정

* feat: (#326) 글작성/수정 시 입력 예외처리에 해당하는 경우 토스트로 안내 구현

* feat: (#326) 글작성 폼 컴포넌트 토스트 useEffect 의존성 배열 수정

* feat: (#326) 댓글작성 실패 시 토스트 컴포넌트 등장 구현

* feat: 유저신고 > 닉네임 신고로 수정

* design: 메뉴 컴포넌트 뒤가 보여 background-color 수정

* feat: (#326) 댓글삭제 실패, 신고 시 토스트 컴포넌트 등장 구현

* feat: (#326) 투표 실패, 투표 수정 실패 시 토스트 컴포넌트 등장 구현

* feat: (#326) 카테고리 선호/선호취소 실패시 토스트 컴포넌트 등장 구현

* feat: (#326) 댓글 수정 실패 시 토스트 등장 구현

- 낙관적 업데이트로 되어있는 코드라서 어떻게 해야 할지 추후 논의 후 수정할 수 있음
- 낙관적 업데이트와 양자택일이 될 것이라 예상
- 기존 수정버튼을 누르면 무조건 action이 null이 되며 input이 사라졌던 흐름 수정
- 현재 수정을 누르고 api가 성공하면 input 폼을 없앰
- 현재 수정을 누르고 api가 실패하면 input 폼을 유지하고 토스트를 띄움

* fix: 게시글 작성시 본문 사진 url이 공백인 오류,  url로 수정

* refactor: 댓글수정 낙관적 업데이트 삭제

* fix: (#326) 댓글 수정해도 반영이 안되는 오류 수정

- 낙관적 업데이트 수정 중 잘못된 data를 입력되는 부분 수정 누락

* fix: push가 안 되어 원격저장소와 동기화

* feat: 글 수정 시 마감시간 정책 적용 및 안내

* refactor: (#326) 동일 코드 삭제 및 유사코드 조건문 형식 통일

* refactor: (#326) 타입 컨벤션에 맞춰 수정
* chore: (#346) 코드 컨벤션 수정

* refactor: (#346) 게시글 응답 imageUrl 포함시키도록 수정

* fix: (#346) 빈 이미지 처리 수정
- 이름 -page로 수정
- editPostPage는 서스펜스와 에러바운더리를 적용
- 서스펜스/에러바운더리에 따른 UI는 빈헤더 렌더링
* feat: (#344) 회원탈퇴 및 닉네임 변경 API를 UI에 연결

* refactor: (#344) 정책 관련 값 상수화, useText hook의 handleTextChange limit 타입 수정

* refactor: (#344) API 변동사항에 맞게 타입 변경

* refactor: (#344) NICKNAME 객체 상수로 수정

* chore: (#344) 페이지명 PersonalInfoCollect -> RegisterPersonalInfo 로 수정

* feat: (#344) 개인정보 등록 페이지 path 선언, 개인정보 업데이트 mocking 함수 구현

* feat: (#344) API fetch 함수 연결, 디자인 수정

* refactor: (#344) 유저정보 조회 API 변동사항 반영

* chore: (#344) 성별 위치 변경

* chore: (#344) 불필요한 코드 ㄷ삭제

* feat: (#344) 유저 정보 성공 시 쿼리 무효화 및 회원탈퇴 시 로그아웃하도록 구현

* feat: (#344) 생년월일 숫자가 아닌 경우 alert 띄우기

* design: (#344) input type 숫자인 경우 화살표 보이지 않도록 수정
Co-authored-by: jero_kang <inyeong-kang@users.noreply.github.com>
@chsua chsua merged commit c4ae296 into dev Aug 13, 2023
@woo-chang woo-chang deleted the feat/#328 branch August 13, 2023 08:34
tjdtls690 pushed a commit that referenced this pull request Sep 12, 2023
* fix: 우스가 수정한 코드 도입

* refactor: 좁은 헤더 템플릿에 children 옵셔널로 수정

* feat: (#328) 글 수정페이지를 위해 빈헤더가 포함된 에러바운더리 생성

- 폼으로 수정페이지에 헤더가 함께있어 분리할 수 없음
- 때문에 에러바운더리에서 헤더 영역을 보존하기 위해 에러바운더리와 UI만 다른

* fix: 에러바운더리 수정에 대하여 미반영으로 인한 오류 해결

* design: 스타일드 컴포넌트 오타 수정

* feat: 글 작성/수정 컴포넌트 페이지로 변경 및 수정페이지 서스펜스/에러바운더리 적용

- 이름 -page로 수정
- editPostPage는 서스펜스와 에러바운더리를 적용
- 서스펜스/에러바운더리에 따른 UI는 빈헤더 렌더링

* refactor: (#328) 글 작설/수정 폼에서 카테고리 셀렉터 분리

* feat: (#328) 카테고리 셀렉터 에러바운더리로 감싸기

* refactor: (#328) 변경했지만 미적용된 isLoggedIn 변수명 수정

* refactor: (#328) 불필요한 코드 삭제

* fix: (#328) 상세 게시물 리액트 쿼리 캐시 무효화 잘못 설정한 부분 삭제

* 성별, 나이 수정 기능 구현 (#339)

* feat: (#360) 전체 게시글 목록 조회 시 카테고리도 함께 조회할 수 있도록 변경 (#361)

* 내가 쓴 게시글 목록 조회 기능  (#295)

* feat : (#289) QueryDSl 적용 (다즐 코드 복사)

* feat : (#289) 회원 본인이 작성한 게시글 목록 조회 api 구현

* test : (#289) 테스트 코드 추가

* feat : (#289) swagger 추가

* refactor : (#289) final 추가

* style: (#289) 개행 수정

* refactor: (#289) swagger 수정

* refactor: (#289) 개행 수정

* refactor: (#289) any()에 클래스 명시

* refactor: (#289) result 개수 검증 추가

* refactor: (#289) 개행 추가

* refactor: (#289) thread sleep 제거

* refactor: (#289) 개행 수정

* refactor: (#289) assertAll 묶기

* feat: (#289) 카테고리 정렬 추가

* refactor: (#289) thread sleep 관련 throws InterruptedException 제거

* test: (#289) 테스트코드 추가

* refactor: (#289) 메서드 이름 수정

* refactor: (#289) 테스트 코드 검증 추가

* test: (#290) 충돌 해결

* (회원) 게시글 검색 기능 (#314)

* refactor : (#290) (회원) 게시글 검색 기능 api 추가

* test : (#290) 테스트 코드 추가

* feat : (#290) swagger 추가

* style : (#290) 개행 추가

* refactor: (#289) swagger 예외 응답 어노테이션 추가

* refactor: (#289) 개행, assertAll사용, 클래스이름 대문자, //given 리펙터링

* test: (#289) 제목 + 내용에 둘 다 포함되어있는 키워드 검색 테스트 추가

* test: (#290) 테스트 코드 추가

* refactor: (#290) 충돌 해결

* refactor: (#290) 충돌 해결

* feat: (#313) 비회원으로 게시글 검색하는 api 추가 (#363)

* 인증/인가에 따른 라우팅 구현, API 통신 실패 및 존재하지 않는 페이지(Not Found)에 대한 Fallback UI 구현 (#343)

* chore: (#183) 불필요한 모듈 삭제

* refactor: (#183) 의존성 배열 추가

* feat: (#253) NotFound 컴포넌트 구현

* feat: (#183) PrivateRoute 구현 및 필요한 페이지에 적용

* feat: (#253) 헤더 및 로고 추가

* feat: (#325) Error 컴포넌트 구현 및 소셜 로그인 요청 실패 케이스에 적용

* refactor: (#325) 다시 시도 라는 문구로 수정

* chore: (#325) 불필요한 코드 삭제

* feat: (#325) Error 컴포넌트 구현 및 get 요청 실패 케이스에 적용

* feat: (#325) IconButton에 retry 아이콘 추가 및 Error 컴포넌트 디자인 수정

* refactor: (#325) Redirection 페이지에 로그인 요청에 대한 로딩 및 에러 컴포넌트 적용, errorElement 삭제

* refactor: (#183) 전역 상태 대신 cookie 유무로 navigate하도록 수정

* refactor: (#183) navigate 대신 Navigate로 수정, 권한 관련 props 추가

* feat: (#183) 작성자인 경우에만 글 수정, 투표 통계 페이지 접근하도록 라우팅 설정

* refactor: (#183) Navigate 불필요한 속성 제거, 페이지 접근 불가능한 경우 alert 구현

* refactor: (#183) props에 할당한 값에 대한 타입 단언 대신, 조건부로 대체 컴포넌트 렌더링하도록 수정

* refactor: (#183) Error 컴포넌트 이름 ErrorMessage로 수정, Error 페이지 및 ErrorMessage 컴포넌트 텍스트 수정

* 카테고리 목록 fetch하는 것을 컴포넌트 분리하여 Suspense와 에러 바운더리를 적용 (#352)

* refactor: (#324) 대쉬보드에서 카테고리를 불러오고 밖에서 suspense를 이용하도록 수정
대쉬보드 스토리북 사용하지 않는 코드 삭제

* feat: (#324) 에러 바운더리에서 에러 메세지를 렌더하도록 수정
대쉬보드에서 카테고리 불러오는 것을 실패할 때 에러바운더리에서 에러를 잡도록 구현

* fix: (#324) MSW에서 카테고리 리스트를 불러올 때 딜레이가 너무 길어 실패하는 것을 수정

* refactor: (#324) 현재 선택된 게시글 종류 보여주는 로직 PostList,Layout에서 Dashboard로 이동

* refactor: (#324) CategorySection 컴포넌트에서 카테고리 목록을 불러와 보여주도록 구현

* refactor: (#324) ??로 카테고리 리스트가 없다면 빈 배열로 설정하는 중복되는 코드를 제거

* refactor: (#324) 사용하지 않는 코드 삭제 및 스타일드 컴포넌트명 변경

* api 오류 났을 때 토스트 띄우기  (#353)

* fix: (#326) 토스트가 안닫히는 오류 수정

* feat: (#326) 게시물 상세페이지 내 안내 토스트 설정 및 삭제시 홈으로 이동 처리

- 게시물 삭제 실패 시 안내메세지
- 게시물 삭제 불가 시 정책 안내메세지
- 게시물 수정 불가 시 정책 안내메세지
- 게시물 신고 실패 시 안내메세지
- 게시물 신고 성공 시 안내메세지

* refactor: (#326)  토스트 메세지를 토스트 훅과 통합 및 무한토스트 오류 해결

* feat: (#326) 글작성/수정 실패 시 토스트 컴포넌트 등장 구현 및 토스트 훅 수정

* feat: (#326) 글작성/수정 시 입력 예외처리에 해당하는 경우 토스트로 안내 구현

* feat: (#326) 글작성 폼 컴포넌트 토스트 useEffect 의존성 배열 수정

* feat: (#326) 댓글작성 실패 시 토스트 컴포넌트 등장 구현

* feat: 유저신고 > 닉네임 신고로 수정

* design: 메뉴 컴포넌트 뒤가 보여 background-color 수정

* feat: (#326) 댓글삭제 실패, 신고 시 토스트 컴포넌트 등장 구현

* feat: (#326) 투표 실패, 투표 수정 실패 시 토스트 컴포넌트 등장 구현

* feat: (#326) 카테고리 선호/선호취소 실패시 토스트 컴포넌트 등장 구현

* feat: (#326) 댓글 수정 실패 시 토스트 등장 구현

- 낙관적 업데이트로 되어있는 코드라서 어떻게 해야 할지 추후 논의 후 수정할 수 있음
- 낙관적 업데이트와 양자택일이 될 것이라 예상
- 기존 수정버튼을 누르면 무조건 action이 null이 되며 input이 사라졌던 흐름 수정
- 현재 수정을 누르고 api가 성공하면 input 폼을 없앰
- 현재 수정을 누르고 api가 실패하면 input 폼을 유지하고 토스트를 띄움

* fix: 게시글 작성시 본문 사진 url이 공백인 오류,  url로 수정

* refactor: 댓글수정 낙관적 업데이트 삭제

* fix: (#326) 댓글 수정해도 반영이 안되는 오류 수정

- 낙관적 업데이트 수정 중 잘못된 data를 입력되는 부분 수정 누락

* fix: push가 안 되어 원격저장소와 동기화

* feat: 글 수정 시 마감시간 정책 적용 및 안내

* refactor: (#326) 동일 코드 삭제 및 유사코드 조건문 형식 통일

* refactor: (#326) 타입 컨벤션에 맞춰 수정

* 게시글 전체 조회 시 이미지 경로 포함하도록 수정 (#364)

* chore: (#346) 코드 컨벤션 수정

* refactor: (#346) 게시글 응답 imageUrl 포함시키도록 수정

* fix: (#346) 빈 이미지 처리 수정

* feat: 글 작성/수정 컴포넌트 페이지로 변경 및 수정페이지 서스펜스/에러바운더리 적용

- 이름 -page로 수정
- editPostPage는 서스펜스와 에러바운더리를 적용
- 서스펜스/에러바운더리에 따른 UI는 빈헤더 렌더링

* 개인정보(성별/나이) 등록 페이지 구현, 회원탈퇴 및 닉네임 변경 API 함수에 UI와 연결 (#359)

* feat: (#344) 회원탈퇴 및 닉네임 변경 API를 UI에 연결

* refactor: (#344) 정책 관련 값 상수화, useText hook의 handleTextChange limit 타입 수정

* refactor: (#344) API 변동사항에 맞게 타입 변경

* refactor: (#344) NICKNAME 객체 상수로 수정

* chore: (#344) 페이지명 PersonalInfoCollect -> RegisterPersonalInfo 로 수정

* feat: (#344) 개인정보 등록 페이지 path 선언, 개인정보 업데이트 mocking 함수 구현

* feat: (#344) API fetch 함수 연결, 디자인 수정

* refactor: (#344) 유저정보 조회 API 변동사항 반영

* chore: (#344) 성별 위치 변경

* chore: (#344) 불필요한 코드 ㄷ삭제

* feat: (#344) 유저 정보 성공 시 쿼리 무효화 및 회원탈퇴 시 로그아웃하도록 구현

* feat: (#344) 생년월일 숫자가 아닌 경우 alert 띄우기

* design: (#344) input type 숫자인 경우 화살표 보이지 않도록 수정

* refactor: 중복 코드 삭제

Co-authored-by: jero_kang <inyeong-kang@users.noreply.github.com>

* fix: 유저정보 변수 잘못 기재되어있어 수정

---------

Co-authored-by: JeongHun Yu <jeomxon@gmail.com>
Co-authored-by: lookh <103165859+aiaiaiai1@users.noreply.github.com>
Co-authored-by: jero_kang <81199414+inyeong-kang@users.noreply.github.com>
Co-authored-by: 김영길/KIM YOUNG GIL <80146176+Gilpop8663@users.noreply.github.com>
Co-authored-by: 최우창 <clllickme@naver.com>
Co-authored-by: jero_kang <inyeong-kang@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
6 participants