From 7c8067c171a6e2792da1b4b3edb7f8f337be94ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Mon, 5 Oct 2026 19:41:16 -0300 Subject: [PATCH 1/3] fix: adjust z-index for ticket type dropdown on ticket form MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- src/components/forms/ticket-form.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/forms/ticket-form.js b/src/components/forms/ticket-form.js index fde6f8a5c..6e9e5d858 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"; @@ -278,6 +278,8 @@ class TicketForm extends React.Component { optionsLimit={25} cacheOptions defaultOptions + menuPortalTarget={document.body} + styles={{ menuPortal: (base) => ({ ...base, zIndex: 1400 }) }} />
From 56eeb4fb87d3c30cd5ead597292d3e613aa61797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Fri, 13 Nov 2026 11:29:19 -0300 Subject: [PATCH 2/3] fix: apply react-select portal and styling on general at app.js file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- src/app.js | 17 ++++++++++++++++- src/components/forms/ticket-form.js | 2 -- src/utils/constants.js | 2 ++ 3 files changed, 18 insertions(+), 3 deletions(-) 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 6e9e5d858..35c554dfe 100644 --- a/src/components/forms/ticket-form.js +++ b/src/components/forms/ticket-form.js @@ -278,8 +278,6 @@ class TicketForm extends React.Component { optionsLimit={25} cacheOptions defaultOptions - menuPortalTarget={document.body} - styles={{ menuPortal: (base) => ({ ...base, zIndex: 1400 }) }} />
diff --git a/src/utils/constants.js b/src/utils/constants.js index 1cd6ee899..4f6616e08 100644 --- a/src/utils/constants.js +++ b/src/utils/constants.js @@ -166,6 +166,8 @@ export const DEFAULT_Z_INDEX = 1; export const HIGH_Z_INDEX = 9999; +export const REACT_SELECT_MENU_Z_INDEX = 1400; + export const DELTA_SECS = 300; export const MAX_CENTS = 99; From da0c8376cb38ea7d6f7b522d85cae60aeeba758f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Fri, 13 Nov 2026 12:02:16 -0300 Subject: [PATCH 3/3] fix: apply menuPortalTarget null on bulk editor to keep current ux MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- .../summit-event-bulk-editor-form.js | 13 ++++++++++--- .../summit-event-bulk-editor-item.js | 11 +++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) 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 {