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

inv-79, inv-80, inv-84, inv-85 엘리먼트 > 컨테이너 > 설정 #41

Merged
merged 19 commits into from
Aug 16, 2024

Conversation

bepyan
Copy link
Collaborator

@bepyan bepyan commented Aug 15, 2024

엘리먼트의 배경 설정, 테두리 설정을 구현했습니다.
기존 advance-setting.tsx 내용을 editor/ui 로 마크업을 재작성하여 통일성을 맞췄습니다.

거의 number input, string input으로 모든 설정을 진행하는 것으로 복잡성을 타협했습니다.

결과물:

@bepyan bepyan self-assigned this Aug 15, 2024
Copy link

github-actions bot commented Aug 15, 2024

The latest updates on your projects.

Name Status Preview Updated (UTC)
invi ✅ Ready (Inspect) Visit Preview 2024-08-15 21:48:36

Comment on lines +31 to +33
<>
<TextSetting />
</>
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹

<TextSetting />

Copy link
Collaborator Author

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 11
export function EditorInput({
id,
icon,
componentPrefix,
...props
}: { icon: React.ReactNode } & React.ComponentProps<"input">) {
}: { componentPrefix: React.ReactNode } & React.ComponentProps<"input">) {
return (
<div className="-ml-0.5 mr-2 flex h-7 items-center gap-2 rounded-sm px-1.5 py-0.5 ring-border focus-within:bg-secondary hover:ring-1">
<label htmlFor={id}>{icon}</label>
<label htmlFor={id}>{componentPrefix}</label>
<input
id={id}
{...props}
Copy link
Contributor

Choose a reason for hiding this comment

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

이전에도 ui 컴포넌트가 유연하게 작성된 편이기는 한데..
icon -> componentPrefix 로 변경되면서 유연해지는 것 같아요

예를 들어, suffix도 필요하다면, componentSuffix, 추후에 leftIcon, rightIcon.... 등 계속해서 추가되다보면 사용하는 입장에서 컴포넌트에 대해 알아야 할 인지부하가 커지고 조건문 등 복잡해질 수 있는 여지가 큰 것 같더라고요.
그래서 컴포넌트를 유연하게 사용하고 싶을 때는 아래처럼 사용하는 곳에서 컴포넌트를 합성하는 방식을 좀 더 선호해요

<>
<SomeComponent />
<Input />
</>

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

공감되는 내용입니다. radix-primitives가 큰 인기를 얻는 이유이죠.

다면 이 상황에선 prefix, suffix이 더 합리적인 접근이라고 생각해요.

  1. input 내부 확장의 가능성은 prefix, suffix이상으론 없음
  2. 자유도가 높으면 오히려 사용하기 불편
  3. 이는 mui의 startAdornmentantd의 prefix으로 사용하고 있는 대중성 있는 패턴이기에 혼란이 적음
// compose style
<InputContainer>
  <Icon />
  <Input />
</InputContainer>

// props style
<Input prefix={<Icon />} />

@bepyan bepyan merged commit 3f1ba1f into main Aug 16, 2024
2 checks passed
@bepyan bepyan deleted the feature/inv-84 branch August 16, 2024 11:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants