File tree Expand file tree Collapse file tree 3 files changed +30
-1
lines changed
packages/ui/src/components/SelectInput/components Expand file tree Collapse file tree 3 files changed +30
-1
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ " @ultraviolet/ui " : patch
3+ ---
4+
5+ ` SelectInput ` :
6+ - click outside should work in every context
7+ - fix placeholder alignment when small
Original file line number Diff line number Diff line change @@ -639,6 +639,29 @@ export const Dropdown = ({
639639 )
640640 const modalContext = useContext ( ModalContext )
641641
642+ const handleClickOutside = useCallback (
643+ ( event : MouseEvent ) => {
644+ if (
645+ event . target instanceof Node &&
646+ ref . current &&
647+ ! ref . current . contains ( event . target ) &&
648+ refSelect . current &&
649+ ! refSelect . current . contains ( event . target )
650+ ) {
651+ setIsDropdownVisible ( false )
652+ }
653+ } ,
654+ [ setIsDropdownVisible , refSelect ] ,
655+ )
656+
657+ useEffect ( ( ) => {
658+ document . addEventListener ( 'mouseup' , handleClickOutside )
659+
660+ return ( ) => {
661+ document . removeEventListener ( 'mouseup' , handleClickOutside )
662+ }
663+ } , [ handleClickOutside ] )
664+
642665 useEffect ( ( ) => {
643666 if ( refSelect . current && isDropdownVisible ) {
644667 const position =
Original file line number Diff line number Diff line change @@ -75,7 +75,6 @@ type DisplayValuesProps = {
7575 refPlusTag : RefObject < HTMLDivElement | null >
7676 displayShadowCopy ?: boolean
7777}
78-
7978const DisplayValues = ( {
8079 refTag,
8180 nonOverflowedValues,
You can’t perform that action at this time.
0 commit comments