From 78319f4b7d677394577779d6cc80a3ca8a438953 Mon Sep 17 00:00:00 2001 From: Katie McFaul Date: Mon, 31 Oct 2022 11:06:16 -0400 Subject: [PATCH 1/3] feat(Popper, misc): allow components to customize popper z-index --- .../components/ApplicationLauncher/ApplicationLauncher.tsx | 4 ++++ .../src/components/ContextSelector/ContextSelector.tsx | 7 ++++++- packages/react-core/src/components/Dropdown/Dropdown.tsx | 4 ++++ .../src/components/Dropdown/DropdownWithContext.tsx | 2 ++ packages/react-core/src/components/Nav/NavItem.tsx | 4 ++++ .../react-core/src/components/OptionsMenu/OptionsMenu.tsx | 4 ++++ .../react-core/src/components/SearchInput/SearchInput.tsx | 4 ++++ packages/react-core/src/components/Select/Select.tsx | 7 ++++++- packages/react-core/src/components/Tabs/OverflowTab.tsx | 4 ++++ .../react-core/src/components/TimePicker/TimePicker.tsx | 7 ++++++- .../react-core/src/next/components/Dropdown/Dropdown.tsx | 4 ++++ packages/react-core/src/next/components/Select/Select.tsx | 4 ++++ 12 files changed, 52 insertions(+), 3 deletions(-) diff --git a/packages/react-core/src/components/ApplicationLauncher/ApplicationLauncher.tsx b/packages/react-core/src/components/ApplicationLauncher/ApplicationLauncher.tsx index e0540d54dfb..c7aa7e6330a 100644 --- a/packages/react-core/src/components/ApplicationLauncher/ApplicationLauncher.tsx +++ b/packages/react-core/src/components/ApplicationLauncher/ApplicationLauncher.tsx @@ -63,6 +63,8 @@ export interface ApplicationLauncherProps toggleId?: string; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; + /** z-index of the application launcher */ + zIndex?: number; } export class ApplicationLauncher extends React.Component { @@ -133,6 +135,7 @@ export class ApplicationLauncher extends React.Component ); } diff --git a/packages/react-core/src/components/Dropdown/Dropdown.tsx b/packages/react-core/src/components/Dropdown/Dropdown.tsx index 94e98db9b03..4f80391db52 100644 --- a/packages/react-core/src/components/Dropdown/Dropdown.tsx +++ b/packages/react-core/src/components/Dropdown/Dropdown.tsx @@ -62,6 +62,8 @@ export interface DropdownProps isFlipEnabled?: boolean; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; + /** z-index of the dropdown */ + zIndex?: number; /** Value to overwrite the randomly generated data-ouia-component-id.*/ ouiaId?: number | string; /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */ @@ -79,6 +81,7 @@ export const Dropdown: React.FunctionComponent = ({ menuAppendTo = 'inline', isFlipEnabled = true, removeFindDomNode = false, + zIndex = 9999, ...props }: DropdownProps) => ( = ({ menuAppendTo={menuAppendTo} isFlipEnabled={isFlipEnabled} removeFindDomNode={removeFindDomNode} + zIndex={zIndex} {...props} /> diff --git a/packages/react-core/src/components/Dropdown/DropdownWithContext.tsx b/packages/react-core/src/components/Dropdown/DropdownWithContext.tsx index 1cf7ff0638f..2ffd4d470a3 100644 --- a/packages/react-core/src/components/Dropdown/DropdownWithContext.tsx +++ b/packages/react-core/src/components/Dropdown/DropdownWithContext.tsx @@ -78,6 +78,7 @@ export class DropdownWithContext extends React.Component ); diff --git a/packages/react-core/src/components/Nav/NavItem.tsx b/packages/react-core/src/components/Nav/NavItem.tsx index 3e8c78a3abe..710978dff9a 100644 --- a/packages/react-core/src/components/Nav/NavItem.tsx +++ b/packages/react-core/src/components/Nav/NavItem.tsx @@ -34,6 +34,8 @@ export interface NavItemProps extends Omit, ' onShowFlyout?: () => void; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; + /** z-index of the nav item */ + zIndex?: number; /** Value to overwrite the randomly generated data-ouia-component-id.*/ ouiaId?: number | string; /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */ @@ -56,6 +58,7 @@ export const NavItem: React.FunctionComponent = ({ ouiaId, ouiaSafe, removeFindDomNode = false, + zIndex = 9999, ...props }: NavItemProps) => { const { flyoutRef, setFlyoutRef } = React.useContext(NavContext); @@ -225,6 +228,7 @@ export const NavItem: React.FunctionComponent = ({ isVisible={flyoutVisible} onDocumentKeyDown={handleFlyout} removeFindDomNode={removeFindDomNode} + zIndex={zIndex} /> ); diff --git a/packages/react-core/src/components/OptionsMenu/OptionsMenu.tsx b/packages/react-core/src/components/OptionsMenu/OptionsMenu.tsx index 7b627ec6531..0953d6276c6 100644 --- a/packages/react-core/src/components/OptionsMenu/OptionsMenu.tsx +++ b/packages/react-core/src/components/OptionsMenu/OptionsMenu.tsx @@ -49,6 +49,8 @@ export interface OptionsMenuProps menuAppendTo?: HTMLElement | (() => HTMLElement) | 'inline' | 'parent'; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; + /** z-index of the options menu */ + zIndex?: number; /** Value to overwrite the randomly generated data-ouia-component-id.*/ ouiaId?: number | string; /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */ @@ -68,6 +70,7 @@ export const OptionsMenu: React.FunctionComponent = ({ ouiaId, ouiaSafe = true, removeFindDomNode = false, + zIndex = 9999, ...props }: OptionsMenuProps) => ( = ({ toggle={toggle} menuAppendTo={menuAppendTo} removeFindDomNode={removeFindDomNode} + zIndex={zIndex} {...props} /> diff --git a/packages/react-core/src/components/SearchInput/SearchInput.tsx b/packages/react-core/src/components/SearchInput/SearchInput.tsx index 28a05a42790..681ff1e618f 100644 --- a/packages/react-core/src/components/SearchInput/SearchInput.tsx +++ b/packages/react-core/src/components/SearchInput/SearchInput.tsx @@ -119,6 +119,8 @@ export interface SearchInputProps extends Omit, previousNavigationButtonAriaLabel?: string; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; + /** z-index of the advanced search form */ + zIndex?: number; /** Label for the button which resets the advanced search form and clears the search input. */ resetButtonLabel?: string; /** The number of search results returned. Either a total number of results, @@ -160,6 +162,7 @@ const SearchInputBase: React.FunctionComponent = ({ isDisabled = false, appendTo, removeFindDomNode = false, + zIndex = 9999, type = 'text', ...props }: SearchInputProps) => { @@ -416,6 +419,7 @@ const SearchInputBase: React.FunctionComponent = ({ enableFlip={true} appendTo={() => appendTo || searchInputRef.current} removeFindDomNode={removeFindDomNode} + zIndex={zIndex} /> ); diff --git a/packages/react-core/src/components/Select/Select.tsx b/packages/react-core/src/components/Select/Select.tsx index 672034f6430..785df83c693 100644 --- a/packages/react-core/src/components/Select/Select.tsx +++ b/packages/react-core/src/components/Select/Select.tsx @@ -186,6 +186,8 @@ export interface SelectProps isFlipEnabled?: boolean; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; + /** z-index of the select menu */ + zIndex?: number; /** Value to overwrite the randomly generated data-ouia-component-id.*/ ouiaId?: number | string; /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */ @@ -267,7 +269,8 @@ export class Select extends React.Component )} diff --git a/packages/react-core/src/components/Tabs/OverflowTab.tsx b/packages/react-core/src/components/Tabs/OverflowTab.tsx index faf696d6979..7838224b3a5 100644 --- a/packages/react-core/src/components/Tabs/OverflowTab.tsx +++ b/packages/react-core/src/components/Tabs/OverflowTab.tsx @@ -21,6 +21,8 @@ export interface OverflowTabProps extends React.HTMLProps { toggleAriaLabel?: string; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; + /** z-index of the overflow tab */ + zIndex?: number; } export const OverflowTab: React.FunctionComponent = ({ @@ -30,6 +32,7 @@ export const OverflowTab: React.FunctionComponent = ({ defaultTitleText = 'More', toggleAriaLabel, removeFindDomNode = false, + zIndex = 9999, ...props }: OverflowTabProps) => { const menuRef = React.useRef(); @@ -139,6 +142,7 @@ export const OverflowTab: React.FunctionComponent = ({ popperMatchesTriggerWidth={false} appendTo={overflowLIRef.current} removeFindDomNode={removeFindDomNode} + zIndex={zIndex} /> ); }; diff --git a/packages/react-core/src/components/TimePicker/TimePicker.tsx b/packages/react-core/src/components/TimePicker/TimePicker.tsx index 3983310965b..65009626c31 100644 --- a/packages/react-core/src/components/TimePicker/TimePicker.tsx +++ b/packages/react-core/src/components/TimePicker/TimePicker.tsx @@ -73,6 +73,8 @@ export interface TimePickerProps setIsOpen?: (isOpen?: boolean) => void; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; + /** z-index of the time picker */ + zIndex?: number; } interface TimePickerState { @@ -111,7 +113,8 @@ export class TimePicker extends React.Component {}, - removeFindDomNode: false + removeFindDomNode: false, + zIndex: 9999 }; constructor(props: TimePickerProps) { @@ -445,6 +448,7 @@ export class TimePicker extends React.Component diff --git a/packages/react-core/src/next/components/Dropdown/Dropdown.tsx b/packages/react-core/src/next/components/Dropdown/Dropdown.tsx index 83a9996ee1a..af0238f3e77 100644 --- a/packages/react-core/src/next/components/Dropdown/Dropdown.tsx +++ b/packages/react-core/src/next/components/Dropdown/Dropdown.tsx @@ -30,6 +30,8 @@ export interface DropdownProps extends MenuProps, OUIAProps { ouiaId?: number | string; /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */ ouiaSafe?: boolean; + /** z-index of the dropdown menu */ + zIndex?: number; } const DropdownBase: React.FunctionComponent = ({ @@ -45,6 +47,7 @@ const DropdownBase: React.FunctionComponent = ({ innerRef, ouiaId, ouiaSafe = true, + zIndex = 9999, ...props }: DropdownProps) => { const localMenuRef = React.useRef(); @@ -119,6 +122,7 @@ const DropdownBase: React.FunctionComponent = ({ popper={menu} appendTo={containerRef.current || undefined} isVisible={isOpen} + zIndex={zIndex} /> ); diff --git a/packages/react-core/src/next/components/Select/Select.tsx b/packages/react-core/src/next/components/Select/Select.tsx index b2eed72f714..7051afb006f 100644 --- a/packages/react-core/src/next/components/Select/Select.tsx +++ b/packages/react-core/src/next/components/Select/Select.tsx @@ -26,6 +26,8 @@ export interface SelectProps extends MenuProps, OUIAProps { minWidth?: string; /** @hide Forwarded ref */ innerRef?: React.Ref; + /** z-index of the select menu */ + zIndex?: number; } const SelectBase: React.FunctionComponent = ({ @@ -39,6 +41,7 @@ const SelectBase: React.FunctionComponent = ({ isPlain, minWidth, innerRef, + zIndex = 9999, ...props }: SelectProps & OUIAProps) => { const localMenuRef = React.useRef(); @@ -117,6 +120,7 @@ const SelectBase: React.FunctionComponent = ({ popper={menu} appendTo={containerRef.current || undefined} isVisible={isOpen} + zIndex={zIndex} /> ); From 2b366f755354d6afd5b6beb76d12e90afe6b9198 Mon Sep 17 00:00:00 2001 From: Katie McFaul Date: Thu, 3 Nov 2022 10:49:41 -0400 Subject: [PATCH 2/3] update some prop descriptions --- .../src/components/ApplicationLauncher/ApplicationLauncher.tsx | 2 +- packages/react-core/src/components/Nav/NavItem.tsx | 2 +- packages/react-core/src/components/SearchInput/SearchInput.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-core/src/components/ApplicationLauncher/ApplicationLauncher.tsx b/packages/react-core/src/components/ApplicationLauncher/ApplicationLauncher.tsx index c7aa7e6330a..34b3d453b97 100644 --- a/packages/react-core/src/components/ApplicationLauncher/ApplicationLauncher.tsx +++ b/packages/react-core/src/components/ApplicationLauncher/ApplicationLauncher.tsx @@ -63,7 +63,7 @@ export interface ApplicationLauncherProps toggleId?: string; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; - /** z-index of the application launcher */ + /** z-index of the application launcher when menuAppendTo is not inline. */ zIndex?: number; } diff --git a/packages/react-core/src/components/Nav/NavItem.tsx b/packages/react-core/src/components/Nav/NavItem.tsx index 710978dff9a..31827f0ddf3 100644 --- a/packages/react-core/src/components/Nav/NavItem.tsx +++ b/packages/react-core/src/components/Nav/NavItem.tsx @@ -34,7 +34,7 @@ export interface NavItemProps extends Omit, ' onShowFlyout?: () => void; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; - /** z-index of the nav item */ + /** z-index of the flyout nav item */ zIndex?: number; /** Value to overwrite the randomly generated data-ouia-component-id.*/ ouiaId?: number | string; diff --git a/packages/react-core/src/components/SearchInput/SearchInput.tsx b/packages/react-core/src/components/SearchInput/SearchInput.tsx index 681ff1e618f..d2080facb32 100644 --- a/packages/react-core/src/components/SearchInput/SearchInput.tsx +++ b/packages/react-core/src/components/SearchInput/SearchInput.tsx @@ -119,7 +119,7 @@ export interface SearchInputProps extends Omit, previousNavigationButtonAriaLabel?: string; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; - /** z-index of the advanced search form */ + /** z-index of the advanced search form when appendTo is not inline. */ zIndex?: number; /** Label for the button which resets the advanced search form and clears the search input. */ resetButtonLabel?: string; From 73029af3e5fac87528160e46e03ee2581241a5dc Mon Sep 17 00:00:00 2001 From: Katie McFaul Date: Mon, 7 Nov 2022 14:21:01 -0500 Subject: [PATCH 3/3] update desc --- .../src/components/ContextSelector/ContextSelector.tsx | 2 +- packages/react-core/src/components/Dropdown/Dropdown.tsx | 2 +- packages/react-core/src/components/OptionsMenu/OptionsMenu.tsx | 2 +- packages/react-core/src/components/Select/Select.tsx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/react-core/src/components/ContextSelector/ContextSelector.tsx b/packages/react-core/src/components/ContextSelector/ContextSelector.tsx index 0ad0b2d2b5b..dd45b8ab99d 100644 --- a/packages/react-core/src/components/ContextSelector/ContextSelector.tsx +++ b/packages/react-core/src/components/ContextSelector/ContextSelector.tsx @@ -68,7 +68,7 @@ export interface ContextSelectorProps extends Omit HTMLElement) | 'inline' | 'parent'; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; - /** z-index of the options menu */ + /** z-index of the options menu when menuAppendTo is not inline. */ zIndex?: number; /** Value to overwrite the randomly generated data-ouia-component-id.*/ ouiaId?: number | string; diff --git a/packages/react-core/src/components/Select/Select.tsx b/packages/react-core/src/components/Select/Select.tsx index 785df83c693..c687a4b98b4 100644 --- a/packages/react-core/src/components/Select/Select.tsx +++ b/packages/react-core/src/components/Select/Select.tsx @@ -186,7 +186,7 @@ export interface SelectProps isFlipEnabled?: boolean; /** @beta Opt-in for updated popper that does not use findDOMNode. */ removeFindDomNode?: boolean; - /** z-index of the select menu */ + /** z-index of the select menu when menuAppendTo is not inline. */ zIndex?: number; /** Value to overwrite the randomly generated data-ouia-component-id.*/ ouiaId?: number | string;