channel-io/bezier-react

Remove unnecessary `size` attribute of the `TextField`'s internal `input` element

Open

#1,053 opened on Dec 3, 2022

View on GitHub
 (0 comments) (0 reactions) (0 assignees)TypeScript (54 forks)auto 404
enhancementhelp wantedpriority:B

Repository metrics

Stars
 (278 stars)
PR merge metrics
 (PR metrics pending)

Description

Description

TextField 내부 input 엘리먼트의 불필요한 size 속성을 제거합니다.

Reasons for suggestion

#1028 에서 TextField 컴포넌트의 사이즈별 폰트 사이즈를 업데이트하며, 내부 input 엘리먼트의 불필요한(하다고 생각한) size 속성을 제거했습니다. TextFieldSize enum은 input 엘리먼트를 감싸는 Wrapper(div) 스타일 컴포넌트에게 주입하여 텍스트 필드의 높이를 결정하는 데 사용하는 값이었기때문에, 잘못 설정된 속성이라고 생각해서 내린 결정이었습니다.

문제는 input 엘리먼트의 size 속성이 유효한 속성이라는 점입니다. 예를 들어 TextFieldSize.M 의 값은 36인데, 이 값을 size 에 주었을 경우 input 엘리먼트는 36개의 글자가 보일 수 있는 만큼의 너비로 설정됩니다. 이 너비는 폰트마다 달라서, Condensed 폰트의 경우와 일반적인 너비를 가진 폰트일 경우의 너비가 다르게 설정됩니다.

이번에 데스크에 bezier-react 마이그레이션을 하면서 어플리케이션 전반적으로 일부 UI에서 input 엘리먼트의 size 속성을 통해 암묵적으로 정해진 너비(M 기준 302px)를 사용하고 있었다는 걸 알게 되었습니다. 이런 케이스가 꽤나 많아서(***Modal, ***Select, 기타 Flex layout), 당장 마이그레이션하기엔 리소스 부족으로 어렵다고 판단했습니다. 이후 Modal, Select 등 컴포넌트를 새로 구현하며 다시 살펴볼 예정입니다.

#1052 를 참고해주세요.

Proposed solution

생략

References

No response

Contributor guide