-
Notifications
You must be signed in to change notification settings - Fork 0
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
[Design System] Alert, Confirm, Prompt #102
base: master
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for ids-storybook ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
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.
Context
로 사용하는 방식의 장점이 아직 와닿지 않는 것 같습니다.
일단, 사용자의 입장에서 Alert
컴포넌트를 위해 Provider
를 사용해야 한다는 점과, onConfirm
이 선언된 이후 반드시 Alert
가 닫히게 되어 중간 작업이 필요할 경우(Alert
를 중첩해서 띄운다거나)에 확장성이 닫혀있지 않을까 생각이 듭니다.
background: ${({ theme }) => theme.color.primary.blue500}; | ||
border: none; | ||
border-radius: 5px; | ||
color: white; |
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.
컬러 코드는 디자인 시스템으로 통일하는게 좋을 것 같습니다.
description: '', | ||
confirmButtonLabel: '확인', | ||
// eslint-disable-next-line @typescript-eslint/no-empty-function | ||
onConfirm: () => {}, |
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.
어차피 옵셔널 인자라면 반드시 초기 상태로 넣어줄 필요는 없을 것 같습니다.
alert.onConfirm(); | ||
} | ||
|
||
setAlert((prev) => ({ ...prev, open: false })); |
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.
이 경우에, 만약 이전 상태에서 description
, confirmButtonLabel
등의 옵셔널 인자를 초기화 해주지 않으면, 해당 내용을 이후에 변경해주지 않고 사용할 때 이전 기록이 남아있을 것 같습니다.
const openAlert = useContext(AlertContext); | ||
|
||
return useCallback( | ||
(title: string, description: string, onConfirm?: () => void, confirmButtonLabel?: string) => { |
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.
옵셔널 인자들은 순서에 영향을 받지 않도록 객체로 묶어서 사용하면 좋을 것 같습니다.
만약 onClose
등의 함수가 추가된다면 모든 코드에서 순서를 변경해야 하므로 어려움이 발생할 것 같네요.
개요 🔍
작업 내용 📝
기타 사항 🙋♂️