-
Notifications
You must be signed in to change notification settings - Fork 1
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
웹 접근성 개선과 토스트 문서 추가 #86
Conversation
이벤트 핸들러 타입 추측하는 바.. KeyboardEventHandler는 리액트에서 만든 타입이라 그런거 같아요 |
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.
수고했어요 해온~
@@ -16,7 +16,9 @@ const Toast = ({ id, message, isError = false }: ToastProps) => { | |||
|
|||
return ( | |||
<ToastWrapper isError={isError} isAnimating={isShown}> | |||
<Message color={theme.colors.white}>{message}</Message> | |||
<Message color={theme.colors.white} aria-live="assertive"> |
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.
👍
@Leejin-Yang |
@hae-on |
@Leejin-Yang |
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.
해온 다시 생각해봤는데 코멘트 확인해주세요!
src/Textarea/Textarea.tsx
Outdated
value={value} | ||
ref={ref} | ||
resize={resize} | ||
error={error} |
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.
이 친구랑
src/Textarea/Textarea.tsx
Outdated
<Text size="xs" color={theme.colors.error} aria-live="assertive"> | ||
{error} | ||
</Text> |
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.
이 친구는 여기 남기고
src/hooks/useSpaceValidator.ts
Outdated
const useSpaceValidator = (initialValue = '') => { | ||
const [value, setValue] = useState(initialValue); | ||
const [error, setError] = useState(''); | ||
|
||
const handleChange: ChangeEventHandler<HTMLTextAreaElement> = (e) => { | ||
const newValue = e.target.value; | ||
setValue(newValue); | ||
|
||
const isWhitespaceOnly = !newValue.trim() && newValue.length > 2; | ||
const isConsecutiveSpaces = /\s{10,}/.test(newValue); | ||
const isConsecutiveNewlines = /\n{4,}/.test(newValue); | ||
|
||
isWhitespaceOnly || isConsecutiveSpaces || isConsecutiveNewlines | ||
? setError('의미 있는 리뷰를 작성해보는 건 어떨까요? 🫨') | ||
: setError(''); | ||
}; | ||
|
||
return { value, error, handleChange }; | ||
}; |
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.
이 훅은 사용처에서 작성해도 될거 같아요.
함수만 제공해도 될 거 같다고 했는데, 이건 사용처에서 처리하는 부분이라 common한 부분은 아닌거 같아서..! 아싸리 펀잇에서 작성하는건 어떤가요??
src/Textarea/Textarea.tsx
Outdated
@@ -10,14 +14,33 @@ export interface TextareaProps extends ComponentPropsWithRef<'textarea'> { | |||
} | |||
|
|||
const Textarea = ({ resize = 'both', ref, ...props }: TextareaProps) => { | |||
const { value, error, handleChange } = useValidator(); |
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.
그럼 요거가 삭제되겠네요!
@Leejin-Yang |
@hae-on |
@Leejin-Yang |
@hae-on |
Issue
✨ 구현한 기능
토스트 문서 추가 했어요
Toast 메세지 뜨면 스크린리더가 바로 읽게 했어요
ESC 누르면 dialog 꺼지게 했어요
공백 유효성 검사 했어요 (일단 text area만 -> input에도 할깝쇼?)
📢 논의하고 싶은 내용
ESC 누르면 꺼지게 하는 함수에서 이벤트에 type을 이렇게 줬거든요?
이게 펀잇에서 Enter key custom hook 함수 로직인데 이렇게 정의했더라구요.
그래서 똑같이 했는데 이게 이 함수 자체에서는 오류가 없는데
useEffect 내부 함수를 넣으니까
이런 에러가 뜨면서 useEffect 내부에 'handleKeydown' 있는 곳 다 빨간 줄 나더라구요.
그래서 어쩔 수 없이 아래처럼 했는데 혹시 이유나 어떻게 바꿀 수 있는지 안다면 말해주세요.
구글링해도 안나오네요 후 ㅠㅠㅠ GPT는 any 이러고 이씀 ㅡㅡ
🎸 기타
x