-
Notifications
You must be signed in to change notification settings - Fork 2
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
[FEATURE] 공홈 어드민 홈 페이지 퍼블리싱 #128
Conversation
|
@Brokyeom @suwonthugger @sohee-K 알림 Modal 개발할때도 느낀거지만 file input이나 image input도 디자인 시스템 레벨에서 지원한다면 좋을 것 같다는 생각이 드네요!! |
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.
고생하셨어요~
최신 소식 삭제 버튼 등에서 cursor pointer 처리 안 되던데 수정 부탁드려용~
mds에 파일 인풋이 없어서 ImageInput은 직접 구현하였습니다.
저는 이거 react-dropzone 이용해서 구현했는데 나중에 쓸람쓸~
이거는 시스템 레벨에서 추가하는게 좋아보입니다. tds에서도 FileUploader, DropZone 컴포넌트가 존재했어요! |
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.
고생하셨습니다 해당 페이지에 자잘한 작업거리들이 엄청 많네요 😭🥲😭🥲😭🥲
코멘트 한번 확인해주시고
그 공통으로 빼야하는 부분들이 저희 작업물들 전반적으로 좀 많은데,
이부분 지금 빼주거나, 좀 비효율적이다 싶으면 그냥 일단 머지 후에 나중에 따로 이슈파서 겹치는 스타일/컴포넌트들 다 공통으로 바꿔주는 작업 해도 될 것 같어요
const ImageInput = ({ label, description }: ImageInputProps) => { | ||
return ( | ||
<StInputContainer> | ||
<StLabel aria-labelledby={label}> | ||
{label} | ||
<StRequiredIcon>*</StRequiredIcon> | ||
</StLabel> | ||
<StDescription>{description}</StDescription> | ||
|
||
<StImageLabel htmlFor={label}> | ||
<IconImagePlus color={colors.white} /> | ||
</StImageLabel> | ||
<StImageInput type="file" accept="image/*" id={label} /> | ||
</StInputContainer> | ||
); | ||
}; |
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.
이거 언석오빠가 만든 react-dropzone 컴포넌트 참고해서 둘중 어떤거 사용할지, 혹은 어떻게 혼합할지 정하면 좋을 것 같아요! 완전 똑같이 생긴 친구들이니!
그래서 정하고 나서 변경사항 필요하면 그거 머지 전에 반영하면 좋을듯 합니당
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.
언석오빠가 앞서 만들어준 드래그드랍 가능한 이미지 컴포넌트 작업 PR 머지해줘서요!
해당 작업 풀받아서 적용시키고 머지하시면 될 것 같아용
Deploying sopt-admin with Cloudflare Pages
|
✨ 구현 기능 명세
2024-10-24.3.37.00.mov
✅ PR Point
📍 진행 사항
먼저 퍼블리싱만 우선적으로 진행하였습니다. 필요한 상태는 선언만 해놓고, 또한 각 모달들은 모달을 트리거하는 버튼이 눌렸을 때 열리고 "취소"를 눌렀을 때 닫히도록만 일단 연결해두었습니다 !
추후 로직 연결할 때
zod + react hook form
연결하겠습니다.📍 mds TextArea
먼저
mds
를 최신 버전으로 버전업하였습니다. 왜냐하면TextArea
를 사용해야하는데, 기존에 사용하고 있던2.0.0
버전에서는maxLength
prop을 넘기지 않았을 때 밑에0/
으로만 띄워지더라구요. 현재 홈 페이지의 파트별 소개textarea
는 아예 인풋 value 길이를count
하는 부분이 없어야 하는데, 이게 mdslatest
버전에 반영이 된 상태였습니다. 따라서mds
버전을 업그레이드 해주었습니다.📍 Image Input
mds
에 파일 인풋이 없어서ImageInput
은 직접 구현하였습니다.style component
를 제외한 구조는 다음과 같습니다.먼저
type=file
의 인풋 클릭을 어떻게 트리거할 것이냐에 대해 고민을 했습니다. 왜냐면 라벨의htmlFor
와 인풋의id
를 활용하면 쉽게 구현이 가능한데, 문제는 위에 "이미지"라고 표시될 또 하나의 인풋에 대한 라벨이 존재했기 때문입니다. ( 하나의 Input에 대해서는 하나의 Label이 권장됨 )따라서 "이미지"라는 텍스트를
label
요소로 하되, 클릭될 이미지 영역인 위 코드에서의label
을 그냥div
로 하고 인풋에ref
를 연결해주어 프로그래밍적으로 트리거할 지, 아니면 기초적으로label + input
으로 트리거할 지에 대해 고민했습니다.최종 결정은 "이미지" 텍스트로 표현되는 이 라벨은
p
태그를 활용하되aria
를 활용하여 스크린 리더에게 "id={label}
인 인풋을 설명해주는 요소이다" 라는 정도만 알려주는 식으로 구현하였습니다.그리고 실제
label
과input
은 htmlFor, id로 구현하여 라벨을 클릭했을 시 쉽게 파일 업로드 창이 뜨도록 하였습니다 ! 이 부분에서 더 나은 방향이 있다면 피드백해주시면 감사하겠습니다.