@@ -5,8 +5,13 @@ import ReactSelect, {
55 MenuPlacement ,
66} from "react-select" ;
77import { clone } from "lodash" ;
8+ import { useSelectMenuPortal } from "@/app/SelectMenuPortal" ;
89
910export const customStyles = {
11+ menuPortal : ( provided : any ) => ( {
12+ ...provided ,
13+ zIndex : "var(--gb-select-menu-z)" ,
14+ } ) ,
1015 control : ( provided : any , state : any ) => ( {
1116 ...provided ,
1217 borderColor : state . isFocused ? "var(--focus-8)" : "var(--gray-a7)" ,
@@ -114,6 +119,8 @@ export default function SelectField({
114119 validOptionPattern,
115120 menuPlacement,
116121} : SelectFieldProps ) {
122+ const menuPortalTarget = useSelectMenuPortal ( ) ;
123+
117124 const map = useMemo ( ( ) => {
118125 const map = new Map < string , SingleValue > ( ) ;
119126 options . forEach ( ( opt ) => {
@@ -136,6 +143,8 @@ export default function SelectField({
136143 return (
137144 < CreatableSelect
138145 menuPlacement = { menuPlacement }
146+ menuPortalTarget = { menuPortalTarget }
147+ menuPosition = { menuPortalTarget ? "fixed" : undefined }
139148 className = { className }
140149 isClearable = { isClearable }
141150 isDisabled = { disabled || false }
@@ -187,6 +196,8 @@ export default function SelectField({
187196 return (
188197 < ReactSelect
189198 menuPlacement = { menuPlacement }
199+ menuPortalTarget = { menuPortalTarget }
200+ menuPosition = { menuPortalTarget ? "fixed" : undefined }
190201 isClearable = { isClearable }
191202 className = { className }
192203 isDisabled = { disabled || false }
0 commit comments