diff --git a/src/app.js b/src/app.js index 612f8745b..b44bf861f 100644 --- a/src/app.js +++ b/src/app.js @@ -32,6 +32,8 @@ import IdTokenVerifier from "idtoken-verifier"; import T from "i18n-react"; import { LocalizationProvider } from "@mui/x-date-pickers"; import { AdapterMoment } from "@mui/x-date-pickers/AdapterMoment"; +import { SelectBase } from "react-select"; +import LibSelectBase from "react-select/lib/Select"; // eslint-disable-next-line import * as Sentry from "@sentry/react"; import exclusiveSections from "./exclusive-sections.yml"; @@ -46,7 +48,8 @@ import DefaultRoute from "./routes/default-route"; import { getTimezones } from "./actions/base-actions"; import { ALLOWED_INVENTORY_IMAGE_FORMATS, - LANGUAGE_CODE_LENGTH + LANGUAGE_CODE_LENGTH, + REACT_SELECT_MENU_Z_INDEX } from "./utils/constants"; import { SentryFallbackFunction } from "./components/SentryErrorComponent"; @@ -116,6 +119,18 @@ if (exclusiveSections.hasOwnProperty(process.env.APP_CLIENT_NAME)) { window.EXCLUSIVE_SECTIONS = exclusiveSections[process.env.APP_CLIENT_NAME]; } +// absolute at 0,0 so react-select's document-based coordinates still line up; one z-index for every menu +const selectMenuPortal = document.createElement("div"); +Object.assign(selectMenuPortal.style, { + position: "absolute", + top: 0, + left: 0, + zIndex: REACT_SELECT_MENU_Z_INDEX +}); +document.body.appendChild(selectMenuPortal); +SelectBase.defaultProps.menuPortalTarget = selectMenuPortal; +LibSelectBase.defaultProps.menuPortalTarget = selectMenuPortal; + if (window.SENTRY_DSN && window.SENTRY_DSN !== "") { console.log("app init sentry ..."); // Initialize Sentry diff --git a/src/components/forms/ticket-form.js b/src/components/forms/ticket-form.js index fde6f8a5c..35c554dfe 100644 --- a/src/components/forms/ticket-form.js +++ b/src/components/forms/ticket-form.js @@ -14,7 +14,7 @@ import React from "react"; import T from "i18n-react/dist/i18n-react"; import Swal from "sweetalert2"; -import Input from "openstack-uicore-foundation/lib/components/inputs/text-input" +import Input from "openstack-uicore-foundation/lib/components/inputs/text-input"; import TicketTypesInput from "openstack-uicore-foundation/lib/components/inputs/ticket-types-input"; import OwnerInput from "../inputs/owner-input"; import { isEmpty, scrollToError, shallowEqual } from "../../utils/methods"; diff --git a/src/components/summit-event-bulk-actions/summit-event-bulk-editor-form.js b/src/components/summit-event-bulk-actions/summit-event-bulk-editor-form.js index e9c06cf85..1cedf9e07 100644 --- a/src/components/summit-event-bulk-actions/summit-event-bulk-editor-form.js +++ b/src/components/summit-event-bulk-actions/summit-event-bulk-editor-form.js @@ -13,9 +13,9 @@ import React from "react"; import T from "i18n-react/dist/i18n-react"; import Swal from "sweetalert2"; -import DateTimePicker from "openstack-uicore-foundation/lib/components/inputs/datetimepicker" -import SummitVenuesSelect from "openstack-uicore-foundation/lib/components/inputs/summit-venues-select" -import Input from "openstack-uicore-foundation/lib/components/inputs/text-input" +import DateTimePicker from "openstack-uicore-foundation/lib/components/inputs/datetimepicker"; +import SummitVenuesSelect from "openstack-uicore-foundation/lib/components/inputs/summit-venues-select"; +import Input from "openstack-uicore-foundation/lib/components/inputs/text-input"; import Dropdown from "openstack-uicore-foundation/lib/components/inputs/dropdown"; import { epochToMomentTimeZone } from "openstack-uicore-foundation/lib/utils/methods"; import moment from "moment-timezone"; @@ -429,6 +429,8 @@ class SummitEventBulkEditorForm extends React.Component {