-
Notifications
You must be signed in to change notification settings - Fork 7
Conversation
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.
훅 분리랑 input value change 핸들러 내부에 넣는 의견 어떤가요?
코멘트로 남겨뒀어요~!
const myRef = useRef<HTMLHeadingElement>(null); | ||
const queryClient = useQueryClient(); | ||
const toast = useToast(); | ||
|
||
const { mutate: updateWritingTitle } = useMutation(updateWritingTitleRequest, { |
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.
해담 훅은 분리하는게 좋을 것같아요
ref={inputRef} | ||
onChange={(e: ChangeEvent<HTMLInputElement>) => setInputTitle(e.target.value)} |
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.
useControlledInput
훅 내부에 핸들러가 있어도 될 것같다고 생각해요
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.
잘 이해가 안가는데, 어떤 식으로 구현할 수 있을까요?
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.
onChange
를 useControlledInput
훅 내부에 다음과 같이 선언할 수 있지 않나요?
const useControlledInput = (defaultValue: string = '') => {
...
const onChange: ChangeEventHandler<HTMLInputElement> = (e) => setInputTitle(e.target.value)
...
return {
....
onChange,
...
}
}
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.
고생하셨어요! 바로바로 업데이트 되니까 좋네요
@@ -1,6 +1,9 @@ | |||
import { defineConfig } from 'cypress'; | |||
|
|||
export default defineConfig({ | |||
env: { | |||
BASE_URL: 'https://dev.donggle.blog/api', |
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.
이건 뭔가요?
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.
에러 테스트를 위해 overrideWritingTitleWithError
으로 msw 핸들러를 오버라이딩할 때, 내부적으로 ~URL
을 사용합니다.
그 때 기존 process의 환경변수는 접근하지 못하더라구요.
아마 실행환경이 달라서 그런 것 같습니다.
그래서 불가피하게 cypress용 환경변수를 작성했습니다
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.
고생하셨어요! 코멘트 남겨놨습니다~
ref={inputRef} | ||
onChange={(e: ChangeEvent<HTMLInputElement>) => setInputTitle(e.target.value)} |
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.
onChange
를 useControlledInput
훅 내부에 다음과 같이 선언할 수 있지 않나요?
const useControlledInput = (defaultValue: string = '') => {
...
const onChange: ChangeEventHandler<HTMLInputElement> = (e) => setInputTitle(e.target.value)
...
return {
....
onChange,
...
}
}
* fix: 글 제목 변경 fetch 에러 처리 로직 react query 사용하는 것으로 올바르게 수정 * feat: `useControlledInput` 훅 추가 * feat: 사이드바 글 제목 변경 모킹 로직 추가 * feat: 글 제목 변경 시 검증에 실패하면 토스트 출력하는 에러핸들링 로직 추가 * refactor: 글 제목 `Input` 만 사용하도록 변경, controlled input으로 변경 * style: 글 제목 `Input` 이 `disabled` 일 때 스타일 `initial` * feat: 글 제목 수정 시 optimistic update 적용 * refactor: 이벤트 핸들러 `any` 타입 제거 * test: 글 제목 수정 테스트 추가 * feat: 글 제목 길어지면 줄바꿈을 위해 `S.Title` 태그 재선언 * refactor: 글 제목 Input 필요없는 속성 `disabled` 제거 * test: `cypress` msw 핸들러 override를 위한 환경설정 추가 * test: 글 제목 수정 override 에러핸들러 추가 * test: findAllByDisplayValue -> findAllByText * test: 글 제목 변경 실패 테스트 추가 * test: `Input` 이름 수정 방식 변경으로 인해 깨지던 테스트 정상화
🛠️ Issue
✅ Tasks
수정 전
2023-10-16.11.52.10.mov
수정 후
2023-10-16.11.58.58.mov
⏰ Time Difference
📝 Note