-
Notifications
You must be signed in to change notification settings - Fork 4
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
feat: useOverlay hook 추가 #103
Conversation
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.
LGTM :)
많이 배웠습니다 👍
# [1.5.0-beta.1](v1.4.2...v1.5.0-beta.1) (2021-08-16) ### Bug Fixes * build 스크립트가 workspace를 보고 있던 이슈 수정 ([ac5dd43](ac5dd43)) * install @semantic-release/exec ([3e0f0dc](3e0f0dc)) * Storybook 빌드 에러 수정 ([#118](#118)) ([da5586e](da5586e)) * vscode에서 typescript 모듈을 찾지 못하는 이슈 수정 [skip ci] ([#98](#98)) ([fbd7fb7](fbd7fb7)) * yarn 빌드 꺠지는 이슈 수정 ([#97](#97)) ([b98721a](b98721a)) * 배포 에러 수정 ([cbf557b](cbf557b)) * 빌드에러 수정 ([2fe086d](2fe086d)) * 빌드에러 수정 ([274ce7d](274ce7d)) * **Icon:** 아이콘이 깨지는 이슈 수정 ([#119](#119)) ([369808d](369808d)) * **ui-kit:** checkbox 스토리 수정 ([#92](#92)) ([8182cbf](8182cbf)) ### Features * **skeleton:** Skeleton 컴포넌트 추가 ([#114](#114)) ([6d93782](6d93782)) * Snackbar 제거 및 TransitionMotion 컴포넌트 추가 ([#106](#106)) ([3900839](3900839)) * useOverlay hook 추가 ([#103](#103)) ([305adcb](305adcb))
🎉 This PR is included in version 1.5.0-beta.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
* chore: semantic release 배포 수정 & nodeLinker 추 * chore(release): 1.5.0-beta.1 [skip ci] # [1.5.0-beta.1](v1.4.2...v1.5.0-beta.1) (2021-08-16) ### Bug Fixes * build 스크립트가 workspace를 보고 있던 이슈 수정 ([ac5dd43](ac5dd43)) * install @semantic-release/exec ([3e0f0dc](3e0f0dc)) * Storybook 빌드 에러 수정 ([#118](#118)) ([da5586e](da5586e)) * vscode에서 typescript 모듈을 찾지 못하는 이슈 수정 [skip ci] ([#98](#98)) ([fbd7fb7](fbd7fb7)) * yarn 빌드 꺠지는 이슈 수정 ([#97](#97)) ([b98721a](b98721a)) * 배포 에러 수정 ([cbf557b](cbf557b)) * 빌드에러 수정 ([2fe086d](2fe086d)) * 빌드에러 수정 ([274ce7d](274ce7d)) * **Icon:** 아이콘이 깨지는 이슈 수정 ([#119](#119)) ([369808d](369808d)) * **ui-kit:** checkbox 스토리 수정 ([#92](#92)) ([8182cbf](8182cbf)) ### Features * **skeleton:** Skeleton 컴포넌트 추가 ([#114](#114)) ([6d93782](6d93782)) * Snackbar 제거 및 TransitionMotion 컴포넌트 추가 ([#106](#106)) ([3900839](3900839)) * useOverlay hook 추가 ([#103](#103)) ([305adcb](305adcb)) * update npm ignore Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
# [1.5.0](v1.4.2...v1.5.0) (2021-08-16) ### Bug Fixes * build 스크립트가 workspace를 보고 있던 이슈 수정 ([ac5dd43](ac5dd43)) * install @semantic-release/exec ([3e0f0dc](3e0f0dc)) * Storybook 빌드 에러 수정 ([#118](#118)) ([da5586e](da5586e)) * vscode에서 typescript 모듈을 찾지 못하는 이슈 수정 [skip ci] ([#98](#98)) ([fbd7fb7](fbd7fb7)) * yarn 빌드 꺠지는 이슈 수정 ([#97](#97)) ([b98721a](b98721a)) * 배포 때 semantic-release 플러그인 못 찾는 이슈 수정 ([#120](#120)) ([175a937](175a937)), closes [#118](#118) [#98](#98) [#97](#97) [#119](#119) [#92](#92) [#114](#114) [#106](#106) [#103](#103) * 배포 에러 수정 ([cbf557b](cbf557b)) * 배포 테스트 ([4897c0f](4897c0f)) * 빌드에러 수정 ([2fe086d](2fe086d)) * 빌드에러 수정 ([274ce7d](274ce7d)) * **Icon:** 아이콘이 깨지는 이슈 수정 ([#119](#119)) ([369808d](369808d)) * **ui-kit:** checkbox 스토리 수정 ([#92](#92)) ([8182cbf](8182cbf)) ### Features * **skeleton:** Skeleton 컴포넌트 추가 ([#114](#114)) ([6d93782](6d93782)) * Snackbar 제거 및 TransitionMotion 컴포넌트 추가 ([#106](#106)) ([3900839](3900839)) * useOverlay hook 추가 ([#103](#103)) ([305adcb](305adcb))
🎉 This PR is included in version 1.5.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
# 1.0.0 (2021-09-11) ### Bug Fixes * build error ([3dba1ee](3dba1ee)) * build 스크립트가 workspace를 보고 있던 이슈 수정 ([ac5dd43](ac5dd43)) * install @semantic-release/exec ([3e0f0dc](3e0f0dc)) * package name is changed ([#128](#128)) ([d6394be](d6394be)) * Storybook 빌드 에러 수정 ([#118](#118)) ([da5586e](da5586e)) * vscode에서 typescript 모듈을 찾지 못하는 이슈 수정 [skip ci] ([#98](#98)) ([fbd7fb7](fbd7fb7)) * yarn 빌드 꺠지는 이슈 수정 ([#97](#97)) ([b98721a](b98721a)) * 배포 때 semantic-release 플러그인 못 찾는 이슈 수정 ([#120](#120)) ([175a937](175a937)), closes [#118](#118) [#98](#98) [#97](#97) [#119](#119) [#92](#92) [#114](#114) [#106](#106) [#103](#103) * 배포 에러 수정 ([cbf557b](cbf557b)) * 배포 테스트 ([4897c0f](4897c0f)) * 빌드 에러 수정 ([#127](#127)) ([372e697](372e697)) * **icon:** Icon 컴포넌트가 화면에 노출되었을 때 SVG 요청을 시작하도록 변경 ([#121](#121)) ([cb7ecb4](cb7ecb4)) * **Icon:** 아이콘이 깨지는 이슈 수정 ([#119](#119)) ([369808d](369808d)) * **Icon:** 필요없는 style 어트리뷰트 제거 ([#124](#124)) ([0fa565a](0fa565a)) * 빌드에러 수정 ([2fe086d](2fe086d)) * 빌드에러 수정 ([274ce7d](274ce7d)) * **docs:** remove nojekyll ([67419f0](67419f0)) * **ui-kit:** apple-logo-ar 아이콘의 경우에는 무조건 outline으로 타입이 지정되도록 수정 ([#91](#91)) ([c89b966](c89b966)) * **ui-kit:** checkbox 스토리 수정 ([#92](#92)) ([8182cbf](8182cbf)) * **ui-kit:** CSS Export 설정 변경 ([#73](#73)) ([0d2fce7](0d2fce7)) * **ui-kit:** Fix Modal Type Error ([33bc34f](33bc34f)) * **ui-kit:** Grid 컴포넌트에 클래스 넣을 수 있도록 변경 ([#61](#61)) ([cbeaf23](cbeaf23)) * **ui-kit:** remove duplicated export syntax ([b8ade40](b8ade40)) * **ui-kit:** Row 컴포넌트 상하 마진 제거 ([#60](#60)) ([8e867d1](8e867d1)) * **ui-kit:** Selection에 Disabled 안 먹는 이슈 수정 ([#86](#86)) ([fc0fa74](fc0fa74)) * **ui-kit:** 사용하지 않는 디펜던시 제거 ([#67](#67)) ([915e889](915e889)) * **ui-kit:** 타이포그래피 타입 깨지는 이슈 수정 ([41ade6b](41ade6b)) * **ui-kit:** 탭 컴포넌트 타입 깨지는 부분 수정 ([#38](#38)) ([eaa7c0f](eaa7c0f)) ### Features * Flex 컴포넌트 추가 ([#126](#126)) ([b33f747](b33f747)) * **skeleton:** Skeleton 컴포넌트 추가 ([#114](#114)) ([6d93782](6d93782)) * Snackbar 제거 및 TransitionMotion 컴포넌트 추가 ([#106](#106)) ([3900839](3900839)) * useOverlay hook 추가 ([#103](#103)) ([305adcb](305adcb)) * **docs:** Docs에 Prev, Next 버튼 추가 ([#77](#77)) ([7af14a3](7af14a3)) * **docs:** UI Kit Docs 페이지 와꾸 추가 ([#62](#62)) ([2b81488](2b81488)) * **docs:** 개발에 필요한 기본적인 세팅 완료 ([#59](#59)) ([2dca6af](2dca6af)) * **ui-kit:** Accordion 컴포넌트 추가 ([#47](#47)) ([dbdd25b](dbdd25b)) * **ui-kit:** Alert, Container 컴포넌트 추가 ([#43](#43)) ([6a2a372](6a2a372)) * **ui-kit:** Beta Release ([#68](#68)) ([8d15fe6](8d15fe6)), closes [#18](#18) [#14](#14) [#20](#20) [#21](#21) [#22](#22) [#23](#23) [#24](#24) [#25](#25) [#27](#27) [#28](#28) [#29](#29) [#30](#30) [#31](#31) [#32](#32) [#33](#33) [#34](#34) [#36](#36) [#35](#35) [#38](#38) [#37](#37) [#40](#40) [#41](#41) [#42](#42) [#39](#39) [#43](#43) [#44](#44) [#46](#46) [#45](#45) [#49](#49) [#47](#47) [#48](#48) [#51](#51) [#52](#52) [#50](#50) [#53](#53) [#54](#54) [#56](#56) [#57](#57) [#58](#58) [#59](#59) [#60](#60) [#61](#61) [#62](#62) [#63](#63) [#64](#64) [#65](#65) [#66](#66) [#67](#67) * **ui-kit:** Button 컴포넌트 타입 추가 ([#51](#51)) ([f423865](f423865)) * **ui-kit:** Color 추가 ([#24](#24)) ([a92b2cd](a92b2cd)) * **ui-kit:** Grid Column ([#25](#25)) ([a5a0ff0](a5a0ff0)) * **ui-kit:** Input 컴포넌트 추가 ([#46](#46)) ([2894397](2894397)) * **ui-kit:** List, ListItem, ListItemImage 컴포넌트 추가 ([#45](#45)) ([3bda7ed](3bda7ed)) * **ui-kit:** Modal 컴포넌트 애니메이션 추가 ([#57](#57)) ([3b76bbe](3b76bbe)) * **ui-kit:** Modal 컴포넌트 추가 ([#50](#50)) ([e16beb0](e16beb0)) * **ui-kit:** ProgressBar 컴포넌트 추가 ([#48](#48)) ([75b3646](75b3646)) * **ui-kit:** Radio 컴포넌트 추가 ([#23](#23)) ([4719333](4719333)) * **ui-kit:** Row 컴포넌트 추가 및 그리드 인터페이스 확정 ([#27](#27)) ([9752aaf](9752aaf)) * **ui-kit:** Selection 컴포넌트 추가 ([#32](#32)) ([bcf8652](bcf8652)) * **ui-kit:** Tabs 컴포넌트 리팩토링 및 모바일 대응 추가 ([#58](#58)) ([5d7b916](5d7b916)) * **ui-kit:** Tag 컴포넌트 추가 ([#53](#53)) ([d37bd03](d37bd03)) * **ui-kit:** Text 컴포넌트 디자인 변경 ([#20](#20)) ([ed86aad](ed86aad)) * **ui-kit:** Text 컴포넌트 추가 ([#18](#18)) ([1c7f777](1c7f777)), closes [#14](#14) * **ui-kit:** 공식 릴리즈 ([#69](#69)) ([f143ff1](f143ff1)), closes [#68](#68) [#18](#18) [#14](#14) [#20](#20) [#21](#21) [#22](#22) [#23](#23) [#24](#24) [#25](#25) [#27](#27) [#28](#28) [#29](#29) [#30](#30) [#31](#31) [#32](#32) [#33](#33) [#34](#34) [#36](#36) [#35](#35) [#38](#38) [#37](#37) [#40](#40) [#41](#41) [#42](#42) [#39](#39) [#43](#43) [#44](#44) [#46](#46) [#45](#45) [#49](#49) [#47](#47) [#48](#48) [#51](#51) [#52](#52) [#50](#50) [#53](#53) [#54](#54) [#56](#56) [#57](#57) [#58](#58) [#59](#59) [#60](#60) [#61](#61) [#62](#62) [#63](#63) [#64](#64) [#65](#65) [#66](#66) [#67](#67) * **ui-kit:** 모든 컴포넌트가 HTML 엘리먼트를 상속받도록 수정 ([#80](#80)) ([885a3dc](885a3dc)) * **ui-kit:** 섀도우 스타일, 스토리북 추가 ([#21](#21)) ([6c5b954](6c5b954)) * **ui-kit:** 스낵바 컴포넌트 추가 ([#41](#41)) ([429a441](429a441)) * **ui-kit:** 카드 컴포넌트 추가 ([#39](#39)) ([dc8b758](dc8b758)) * **ui-kit:** 타이포그래피 디자인 변경사항 반영 ([#22](#22)) ([d4e5742](d4e5742)) * **ui-kit:** 토스트 모바일 적용 배포 트리거 ([ff62810](ff62810)) * **ui-kit:** 토스트 포지션 및 스타일 수정 ([#40](#40)) ([420bb1d](420bb1d)) * **ui-kit:** 토스트에 Align 기능 추가 ([#36](#36)) ([976ce6f](976ce6f)) * **ui-kit:** 툴팁 컴포넌트 추가 ([#37](#37)) ([be2bbb5](be2bbb5))
# 1.0.0 (2021-09-11) ### Bug Fixes * build error ([3dba1ee](3dba1ee)) * build 스크립트가 workspace를 보고 있던 이슈 수정 ([ac5dd43](ac5dd43)) * install @semantic-release/exec ([3e0f0dc](3e0f0dc)) * package name is changed ([47c63e7](47c63e7)) * package name is changed ([b54ea31](b54ea31)) * package name is changed ([#128](#128)) ([d6394be](d6394be)) * Storybook 빌드 에러 수정 ([#118](#118)) ([da5586e](da5586e)) * vscode에서 typescript 모듈을 찾지 못하는 이슈 수정 [skip ci] ([#98](#98)) ([fbd7fb7](fbd7fb7)) * yarn 빌드 꺠지는 이슈 수정 ([#97](#97)) ([b98721a](b98721a)) * 배포 때 semantic-release 플러그인 못 찾는 이슈 수정 ([#120](#120)) ([175a937](175a937)), closes [#118](#118) [#98](#98) [#97](#97) [#119](#119) [#92](#92) [#114](#114) [#106](#106) [#103](#103) * 빌드 에러 수정 ([#127](#127)) ([372e697](372e697)) * **docs:** remove nojekyll ([67419f0](67419f0)) * **icon:** Icon 컴포넌트가 화면에 노출되었을 때 SVG 요청을 시작하도록 변경 ([#121](#121)) ([cb7ecb4](cb7ecb4)) * **Icon:** 필요없는 style 어트리뷰트 제거 ([#124](#124)) ([0fa565a](0fa565a)) * 배포 에러 수정 ([cbf557b](cbf557b)) * 배포 테스트 ([4897c0f](4897c0f)) * 빌드에러 수정 ([2fe086d](2fe086d)) * 빌드에러 수정 ([274ce7d](274ce7d)) * **Icon:** 아이콘이 깨지는 이슈 수정 ([#119](#119)) ([369808d](369808d)) * **ui-kit:** apple-logo-ar 아이콘의 경우에는 무조건 outline으로 타입이 지정되도록 수정 ([#91](#91)) ([c89b966](c89b966)) * **ui-kit:** checkbox 스토리 수정 ([#92](#92)) ([8182cbf](8182cbf)) * **ui-kit:** CSS Export 설정 변경 ([#73](#73)) ([0d2fce7](0d2fce7)) * **ui-kit:** Fix Modal Type Error ([33bc34f](33bc34f)) * **ui-kit:** Grid 컴포넌트에 클래스 넣을 수 있도록 변경 ([#61](#61)) ([cbeaf23](cbeaf23)) * **ui-kit:** remove duplicated export syntax ([b8ade40](b8ade40)) * **ui-kit:** Row 컴포넌트 상하 마진 제거 ([#60](#60)) ([8e867d1](8e867d1)) * **ui-kit:** Selection에 Disabled 안 먹는 이슈 수정 ([#86](#86)) ([fc0fa74](fc0fa74)) * **ui-kit:** 사용하지 않는 디펜던시 제거 ([#67](#67)) ([915e889](915e889)) * **ui-kit:** 타이포그래피 타입 깨지는 이슈 수정 ([41ade6b](41ade6b)) * **ui-kit:** 탭 컴포넌트 타입 깨지는 부분 수정 ([#38](#38)) ([eaa7c0f](eaa7c0f)) ### Features * Flex 컴포넌트 추가 ([#126](#126)) ([b33f747](b33f747)) * **skeleton:** Skeleton 컴포넌트 추가 ([#114](#114)) ([6d93782](6d93782)) * Snackbar 제거 및 TransitionMotion 컴포넌트 추가 ([#106](#106)) ([3900839](3900839)) * useOverlay hook 추가 ([#103](#103)) ([305adcb](305adcb)) * **docs:** Docs에 Prev, Next 버튼 추가 ([#77](#77)) ([7af14a3](7af14a3)) * **docs:** UI Kit Docs 페이지 와꾸 추가 ([#62](#62)) ([2b81488](2b81488)) * **docs:** 개발에 필요한 기본적인 세팅 완료 ([#59](#59)) ([2dca6af](2dca6af)) * **ui-kit:** Accordion 컴포넌트 추가 ([#47](#47)) ([dbdd25b](dbdd25b)) * **ui-kit:** Alert, Container 컴포넌트 추가 ([#43](#43)) ([6a2a372](6a2a372)) * **ui-kit:** Beta Release ([#68](#68)) ([8d15fe6](8d15fe6)), closes [#18](#18) [#14](#14) [#20](#20) [#21](#21) [#22](#22) [#23](#23) [#24](#24) [#25](#25) [#27](#27) [#28](#28) [#29](#29) [#30](#30) [#31](#31) [#32](#32) [#33](#33) [#34](#34) [#36](#36) [#35](#35) [#38](#38) [#37](#37) [#40](#40) [#41](#41) [#42](#42) [#39](#39) [#43](#43) [#44](#44) [#46](#46) [#45](#45) [#49](#49) [#47](#47) [#48](#48) [#51](#51) [#52](#52) [#50](#50) [#53](#53) [#54](#54) [#56](#56) [#57](#57) [#58](#58) [#59](#59) [#60](#60) [#61](#61) [#62](#62) [#63](#63) [#64](#64) [#65](#65) [#66](#66) [#67](#67) * **ui-kit:** Button 컴포넌트 타입 추가 ([#51](#51)) ([f423865](f423865)) * **ui-kit:** Color 추가 ([#24](#24)) ([a92b2cd](a92b2cd)) * **ui-kit:** Grid Column ([#25](#25)) ([a5a0ff0](a5a0ff0)) * **ui-kit:** Input 컴포넌트 추가 ([#46](#46)) ([2894397](2894397)) * **ui-kit:** List, ListItem, ListItemImage 컴포넌트 추가 ([#45](#45)) ([3bda7ed](3bda7ed)) * **ui-kit:** Modal 컴포넌트 애니메이션 추가 ([#57](#57)) ([3b76bbe](3b76bbe)) * **ui-kit:** Modal 컴포넌트 추가 ([#50](#50)) ([e16beb0](e16beb0)) * **ui-kit:** ProgressBar 컴포넌트 추가 ([#48](#48)) ([75b3646](75b3646)) * **ui-kit:** Radio 컴포넌트 추가 ([#23](#23)) ([4719333](4719333)) * **ui-kit:** Row 컴포넌트 추가 및 그리드 인터페이스 확정 ([#27](#27)) ([9752aaf](9752aaf)) * **ui-kit:** Selection 컴포넌트 추가 ([#32](#32)) ([bcf8652](bcf8652)) * **ui-kit:** Tabs 컴포넌트 리팩토링 및 모바일 대응 추가 ([#58](#58)) ([5d7b916](5d7b916)) * **ui-kit:** Tag 컴포넌트 추가 ([#53](#53)) ([d37bd03](d37bd03)) * **ui-kit:** Text 컴포넌트 디자인 변경 ([#20](#20)) ([ed86aad](ed86aad)) * **ui-kit:** Text 컴포넌트 추가 ([#18](#18)) ([1c7f777](1c7f777)), closes [#14](#14) * **ui-kit:** 공식 릴리즈 ([#69](#69)) ([f143ff1](f143ff1)), closes [#68](#68) [#18](#18) [#14](#14) [#20](#20) [#21](#21) [#22](#22) [#23](#23) [#24](#24) [#25](#25) [#27](#27) [#28](#28) [#29](#29) [#30](#30) [#31](#31) [#32](#32) [#33](#33) [#34](#34) [#36](#36) [#35](#35) [#38](#38) [#37](#37) [#40](#40) [#41](#41) [#42](#42) [#39](#39) [#43](#43) [#44](#44) [#46](#46) [#45](#45) [#49](#49) [#47](#47) [#48](#48) [#51](#51) [#52](#52) [#50](#50) [#53](#53) [#54](#54) [#56](#56) [#57](#57) [#58](#58) [#59](#59) [#60](#60) [#61](#61) [#62](#62) [#63](#63) [#64](#64) [#65](#65) [#66](#66) [#67](#67) * **ui-kit:** 모든 컴포넌트가 HTML 엘리먼트를 상속받도록 수정 ([#80](#80)) ([885a3dc](885a3dc)) * **ui-kit:** 섀도우 스타일, 스토리북 추가 ([#21](#21)) ([6c5b954](6c5b954)) * **ui-kit:** 스낵바 컴포넌트 추가 ([#41](#41)) ([429a441](429a441)) * **ui-kit:** 카드 컴포넌트 추가 ([#39](#39)) ([dc8b758](dc8b758)) * **ui-kit:** 타이포그래피 디자인 변경사항 반영 ([#22](#22)) ([d4e5742](d4e5742)) * **ui-kit:** 토스트 모바일 적용 배포 트리거 ([ff62810](ff62810)) * **ui-kit:** 토스트 포지션 및 스타일 수정 ([#40](#40)) ([420bb1d](420bb1d)) * **ui-kit:** 토스트에 Align 기능 추가 ([#36](#36)) ([976ce6f](976ce6f)) * **ui-kit:** 툴팁 컴포넌트 추가 ([#37](#37)) ([be2bbb5](be2bbb5))
🎉 This PR is included in version 1.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
변경사항
선언형으로 사용하는 모달, 얼럿 등의 컴포넌트를 명령형으로 사용할 수 있게 도와주는
useOverlay
훅을 추가하고,useOverlay
로 기능을 100% 대체할 수 있는ModalProvider
를 제거합니다.OverlayContext
현재 등록된 모든 오버레이들을 ID를 키로 가지는 Map으로 관리합니다. Map에 오버레이 타겟을 등록하고 제거함으로써
mount
,unmount
를 수행합니다.StateReacter
오버레이 타겟에 전달되는
isOpen
상태를 가지고 있습니다.OverlayContext
에 등록된 이후에도 함수 스코프를 벗어나 상태 변경에 Reactive한 렌더링을 수행할 수 있어야 하므로, 외부에서 전달받은ref
에 자신의isOpen
상태를 변경할 수 있는 메소드를 노출하고 있습니다.useOverlay
사용자가 사용할 커스텀 오버레이 훅을 만들 수 있는 API를 제공합니다. 오버레이를
OverlayContext
에 등록할 수 있는createOverlayElement
함수와StateReacter
의 상태를 변경할 수 있는open
,close
함수를 노출합니다.useOverlay
는 자신이 가지고 있는StateReacter
의 레퍼런스를 가지고 있기 때문에, 이를 통해StateReacert
의 상태를 직접 변경하고, 이 상태 변경으로 인해createOverlayElement
를 통해 컨텍스트에 주입해놓은 컴포넌트가 다시 렌더링됩니다.집중적으로 리뷰 받고 싶은 부분이 있나요?
훅의 인터페이스는 현재 회사에서 쓰고 있는 녀석을 참고 했슴다.
구현은 직접 고안해서 하려고 했는데...만들다보니 컨텍스트에 넘겨놓은 컴포넌트의 리렌더링을 발생시키는 부분을 제외하고는 얼추 비슷해졌네유...(역시 다 이유가 있는 구조였....)
더 좋은 아이디어가 있다면 코멘트로 같이 논의해봐요 🙏