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

Fix: 댓글 폼 TextArea로 수정, 댓글/답글 관련 버그 수정 #210

Merged
merged 4 commits into from
Apr 14, 2024

Conversation

Nahyun-Kang
Copy link
Contributor

@Nahyun-Kang Nahyun-Kang commented Mar 13, 2024

개요

  • 개요는 변경 사항 및 관련 이슈에 대해 간단하게 작성해주세요.
  • 해당 PR에 대한 리뷰어와 라벨을 생성해 주세요.

작업 사항

  • 댓글 폼을 TextArea로 바꾸었습니다. (바꾸고 나니 엔터키를 누르면 바로 전송이 안됐지만 엔터키를 누르면 폼이 전송되도록 하는 키보드 함수를 추가했습니다.)
  • 댓글 수정과 답글 생성이 동시에 가능하지 않도록 수정했습니다.
  • 답글 수정 이후 재렌더링이 일어나지 않는 이유를 발견했습니다. (쿼리 무효화 함수 수정)

참고 사항 (optional)

  • useResizeTextarea 훅을 사용했습니다.
  • 훅을 사용하여 폼 전송하고 이후 자동으로 크기가 줄어들게 하고 싶었는데, blur/focus 이외에는 폼의 크기를 되돌릴 수 있는 방법을 찾지 못했습니당..(일단 임시로 하드코딩 해두었습니다)

관련 이슈 (optional)

closed: #196
closed: #208
closed: #209


스크린샷

댓글 textarea로 수정, 댓글수정/ 답글 달기 동시에 되는 문제 해결

-.1.mp4

답글 수정 반영 안되는 버그 해결

-.2.mp4

리뷰어에게

  • 어떤 부분에 리뷰어가 집중하면 좋을지

Copy link

vercel bot commented Mar 13, 2024

@Nahyun-Kang is attempting to deploy a commit to the Eujin Ahn's projects Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Contributor

@ParkSohyunee ParkSohyunee left a comment

Choose a reason for hiding this comment

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

나현님! 많은 부분 구현하시느라 고생많으셨습니당👍
나현님 말씀처럼 나중에 리액트 훅 폼으로 변경한다면 textArea resize hook을 적용하는데 더 수월하지 않을까 싶네요..!! 감사합니다.🥰

Comment on lines +58 to +63
export const useCommentStatus = create<useCommentStatusType>((set) => ({
status: null,
setStatusEdit: () => set({ status: 'edit' }),
setStatusCreateReply: () => set({ status: 'createReply' }),
resetStatus: () => set({ status: null }),
}));
Copy link
Contributor

Choose a reason for hiding this comment

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

오! 나현님, 댓글 상태를 전역으로 관리하신 이유가 궁금합니당🧐
컴포넌트간 props를 많이 내려줘야 하거나 초기화 등의 이유가 있었던 걸까요??

Copy link
Contributor Author

Choose a reason for hiding this comment

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

네 소현님..! 아무래도 commentForm 컴포넌트에서 댓글/답글 수정, 댓글/답글 생성 등 많은 부분을 관리하는데 CommentForm이 컴포넌트로 따로 분리되어 있는 문제와, Reply까지 내려가는데 Prop 드릴링을 피할 수가 없어서 전역상태로 관리하는 것을 선택했습니다..!👀

Comment on lines -198 to 207
const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {
const handleSubmit = (e: React.FormEvent<HTMLFormElement> | React.KeyboardEvent<HTMLTextAreaElement>) => {
e.preventDefault();
Copy link
Contributor

Choose a reason for hiding this comment

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

명확한 타입지정 너무 좋네요!! 👍👍
+. 참고로 한 컴포넌트에 React로 바로 임포트 해온 타입이 있고, 아닌 경우도 있어서 나중에 컨벤션을 통일하는 것도 좋을 것 같다는 생각이 들었습니당🥰

Comment on lines 70 to +73
backgroundColor: vars.color.gray3,
'::-webkit-scrollbar': {
display: 'none',
},
Copy link
Contributor

Choose a reason for hiding this comment

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

오! textarea에서 스크롤이 보이지 않게 하는 속성인가요? 🎨

Copy link
Contributor Author

Choose a reason for hiding this comment

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

오 네네..!! overflow scroll에서 hidden으로 바꾸면서 필요없는 코드가 되어버렸네요🤔 삭제해야하는 코드인데 발견해주셔서 감사합니다!! 🥹

Comment on lines +57 to +64

const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
if (e.key === 'Enter' && !e.shiftKey && !isPending) {
// handleResizeHeight();
handleResetTextArea();
e.preventDefault();
handleSubmit(e);
}
Copy link
Contributor

Choose a reason for hiding this comment

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

👍👍👍

Comment on lines +1 to +6
interface IProps {
handleSubmit: (e: React.FormEvent<HTMLFormElement> | React.KeyboardEvent<HTMLTextAreaElement>) => void;
isSubmitting: boolean;
}

function usePressEnterFetch({ handleSubmit, isSubmitting }: IProps) {
Copy link
Contributor

Choose a reason for hiding this comment

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

나현님 혹시 props 타입이름을 함수명+props로 변경하면 어떨까용??

Copy link
Contributor Author

Choose a reason for hiding this comment

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

앗 코드 고대로 복붙해온 거 깜빡했어용..머쓱 ㅎㅎㅎ 타입명 수정해두겠습니당!!👍 감사합니다 소현님 🙇‍♀️

@Nahyun-Kang Nahyun-Kang merged commit 8c027fe into 8-Sprinters:dev Apr 14, 2024
1 of 2 checks passed
Nahyun-Kang added a commit to Nahyun-Kang/ListyWave-front that referenced this pull request Apr 14, 2024
* Fix: 답글 캐싱 문제 해결

* Fix: 답글 생성, 수정 관련 로직 수정

* Fix: 댓글 form input에서 textarea로 교체

* Fix: 댓글 작성 이후 자동으로 textarea 크기 바뀌게 수정
Nahyun-Kang added a commit that referenced this pull request Apr 22, 2024
* Chore: 환경설정 커밋

* Fix: 댓글 폼 TextArea로 수정, 댓글/답글 관련 버그 수정 (#210)

* Fix: 답글 캐싱 문제 해결

* Fix: 답글 생성, 수정 관련 로직 수정

* Fix: 댓글 form input에서 textarea로 교체

* Fix: 댓글 작성 이후 자동으로 textarea 크기 바뀌게 수정

* Fix: intro 페이지 이미지 교체, 메이커스 이름 추가 (임시) (#213)

* Feat: 인트로 페이지 정적인 이미지 동영상으로 교체

* Feat: 인트로 페이지 이미지 교체

* Fix: 인트로 페이지 코드리뷰 반영

* Fix: 탐색 페이지 트렌딩 리스트 사파리에서 타이틀의 webkit 속성이 적용되지 않는 문제 해결
Eugene-A-01 pushed a commit that referenced this pull request Apr 22, 2024
* Chore: 환경설정 커밋

* Fix: 댓글 폼 TextArea로 수정, 댓글/답글 관련 버그 수정 (#210)

* Fix: 답글 캐싱 문제 해결

* Fix: 답글 생성, 수정 관련 로직 수정

* Fix: 댓글 form input에서 textarea로 교체

* Fix: 댓글 작성 이후 자동으로 textarea 크기 바뀌게 수정

* Fix: intro 페이지 이미지 교체, 메이커스 이름 추가 (임시) (#213)

* Feat: 인트로 페이지 정적인 이미지 동영상으로 교체

* Feat: 인트로 페이지 이미지 교체

* Fix: 인트로 페이지 코드리뷰 반영

* Fix: 탐색 페이지 트렌딩 리스트 사파리에서 타이틀의 webkit 속성이 적용되지 않는 문제 해결
@Nahyun-Kang Nahyun-Kang deleted the fix/comment branch May 17, 2024 05:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants