Skip to content

Commit

Permalink
Updated appendTo based on new Popper logic
Browse files Browse the repository at this point in the history
  • Loading branch information
thatblindgeye committed Feb 10, 2023
1 parent 149a6c4 commit 0fb481c
Show file tree
Hide file tree
Showing 14 changed files with 86 additions and 184 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ export const ComposableActionsMenu: React.FunctionComponent = () => {
const [selectedItems, setSelectedItems] = React.useState<number[]>([]);
const toggleRef = React.useRef<HTMLButtonElement>(null);
const menuRef = React.useRef<HTMLDivElement>(null);
const containerRef = React.useRef<HTMLDivElement>(null);

const handleMenuKeys = (event: KeyboardEvent) => {
if (isOpen && menuRef.current?.contains(event.target as Node)) {
Expand Down Expand Up @@ -60,11 +59,9 @@ export const ComposableActionsMenu: React.FunctionComponent = () => {
};

const toggle = (
<div ref={containerRef}>
<MenuToggle ref={toggleRef} onClick={onToggleClick} isExpanded={isOpen}>
{isOpen ? 'Expanded' : 'Collapsed'}
</MenuToggle>
</div>
<MenuToggle ref={toggleRef} onClick={onToggleClick} isExpanded={isOpen}>
{isOpen ? 'Expanded' : 'Collapsed'}
</MenuToggle>
);
const menu = (
<Menu
Expand Down Expand Up @@ -125,13 +122,5 @@ export const ComposableActionsMenu: React.FunctionComponent = () => {
</Menu>
);

return (
<Popper
trigger={toggle}
popper={menu}
isVisible={isOpen}
appendTo={containerRef.current || undefined}
popperMatchesTriggerWidth={false}
/>
);
return <Popper trigger={toggle} popper={menu} isVisible={isOpen} popperMatchesTriggerWidth={false} />;
};
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ export const ComposableApplicationLauncher: React.FunctionComponent = () => {
const [filteredIds, setFilteredIds] = React.useState<string[]>(['*']);
const menuRef = React.useRef<HTMLDivElement>(null);
const toggleRef = React.useRef<HTMLButtonElement>(null);
const containerRef = React.useRef<HTMLDivElement>(null);

const handleMenuKeys = (event: KeyboardEvent) => {
if (!isOpen) {
Expand Down Expand Up @@ -68,18 +67,16 @@ export const ComposableApplicationLauncher: React.FunctionComponent = () => {
}, [isOpen, menuRef]);

const toggle = (
<div ref={containerRef}>
<MenuToggle
aria-label="Toggle"
ref={toggleRef}
variant="plain"
onClick={onToggleClick}
isExpanded={isOpen}
style={{ width: 'auto' }}
>
<ThIcon />
</MenuToggle>
</div>
<MenuToggle
aria-label="Toggle"
ref={toggleRef}
variant="plain"
onClick={onToggleClick}
isExpanded={isOpen}
style={{ width: 'auto' }}
>
<ThIcon />
</MenuToggle>
);

const menuItems = [
Expand Down Expand Up @@ -268,13 +265,5 @@ export const ComposableApplicationLauncher: React.FunctionComponent = () => {
</MenuContent>
</Menu>
);
return (
<Popper
trigger={toggle}
popper={menu}
isVisible={isOpen}
popperMatchesTriggerWidth={false}
appendTo={containerRef.current || undefined}
/>
);
return <Popper trigger={toggle} popper={menu} isVisible={isOpen} popperMatchesTriggerWidth={false} />;
};
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ export const ComposableContextSelector: React.FunctionComponent = () => {
const menuRef = React.useRef<HTMLDivElement>(null);
const toggleRef = React.useRef<HTMLButtonElement>(null);
const menuFooterBtnRef = React.useRef<HTMLButtonElement>(null);
const containerRef = React.useRef<HTMLDivElement>(null);

const handleMenuKeys = (event: KeyboardEvent) => {
if (!isOpen) {
Expand Down Expand Up @@ -113,11 +112,9 @@ export const ComposableContextSelector: React.FunctionComponent = () => {
};

const toggle = (
<div ref={containerRef}>
<MenuToggle ref={toggleRef} onClick={onToggleClick} isExpanded={isOpen}>
{selected}
</MenuToggle>
</div>
<MenuToggle ref={toggleRef} onClick={onToggleClick} isExpanded={isOpen}>
{selected}
</MenuToggle>
);

const onSelect = (ev: React.MouseEvent<Element, MouseEvent>, itemId: string) => {
Expand Down Expand Up @@ -201,13 +198,5 @@ export const ComposableContextSelector: React.FunctionComponent = () => {
</MenuFooter>
</Menu>
);
return (
<Popper
trigger={toggle}
popper={menu}
appendTo={containerRef.current}
isVisible={isOpen}
popperMatchesTriggerWidth={false}
/>
);
return <Popper trigger={toggle} popper={menu} isVisible={isOpen} popperMatchesTriggerWidth={false} />;
};
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,21 @@ export const ComposableSimpleDropdown: React.FunctionComponent = () => {
const [selected, setSelected] = React.useState<number>(0);
const toggleRef = React.useRef<HTMLButtonElement>();
const menuRef = React.useRef<HTMLDivElement>();
const containerRef = React.useRef<HTMLDivElement>();

const handleMenuKeys = (event: KeyboardEvent) => {
if (!isOpen) {
return;
}
if (menuRef.current.contains(event.target as Node) || toggleRef.current.contains(event.target as Node)) {
if (menuRef?.current?.contains(event.target as Node) || toggleRef?.current?.contains(event.target as Node)) {
if (event.key === 'Escape' || event.key === 'Tab') {
setIsOpen(!isOpen);
toggleRef.current.focus();
toggleRef?.current?.focus();
}
}
};

const handleClickOutside = (event: MouseEvent) => {
if (isOpen && !menuRef.current.contains(event.target as Node)) {
if (isOpen && !menuRef?.current?.contains(event.target as Node)) {
setIsOpen(false);
}
};
Expand Down Expand Up @@ -92,12 +91,10 @@ export const ComposableSimpleDropdown: React.FunctionComponent = () => {
};

const toggle = (
<div ref={containerRef}>
<MenuToggle ref={toggleRef} onClick={onToggleClick} isExpanded={isOpen} style={{ minWidth: '250px' }}>
<span style={{ verticalAlign: 'middle', marginRight: '8px' }}>{toggleText[selected]}</span>
{dateText[selected]}
</MenuToggle>
</div>
<MenuToggle ref={toggleRef} onClick={onToggleClick} isExpanded={isOpen} style={{ minWidth: '250px' }}>
<span style={{ verticalAlign: 'middle', marginRight: '8px' }}>{toggleText[selected]}</span>
{dateText[selected]}
</MenuToggle>
);
const menu = (
// eslint-disable-next-line no-console
Expand All @@ -112,13 +109,5 @@ export const ComposableSimpleDropdown: React.FunctionComponent = () => {
</MenuContent>
</Menu>
);
return (
<Popper
trigger={toggle}
popper={menu}
appendTo={containerRef.current}
isVisible={isOpen}
popperMatchesTriggerWidth={false}
/>
);
return <Popper trigger={toggle} popper={menu} isVisible={isOpen} popperMatchesTriggerWidth={false} />;
};
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ export const ComposableDrilldownMenu: React.FunctionComponent = () => {
const [menuHeights, setMenuHeights] = React.useState<MenuHeightsType>({});
const toggleRef = React.useRef<HTMLButtonElement>(null);
const menuRef = React.useRef<HTMLDivElement>(null);
const containerRef = React.useRef<HTMLDivElement>(null);

const handleMenuKeys = (event: KeyboardEvent) => {
if (isOpen && menuRef.current?.contains(event.target as Node)) {
Expand Down Expand Up @@ -93,11 +92,9 @@ export const ComposableDrilldownMenu: React.FunctionComponent = () => {
};

const toggle = (
<div ref={containerRef}>
<MenuToggle ref={toggleRef} onClick={onToggleClick} isExpanded={isOpen}>
{isOpen ? 'Expanded' : 'Collapsed'}
</MenuToggle>
</div>
<MenuToggle ref={toggleRef} onClick={onToggleClick} isExpanded={isOpen}>
{isOpen ? 'Expanded' : 'Collapsed'}
</MenuToggle>
);
const menu = (
<Menu
Expand Down Expand Up @@ -250,13 +247,5 @@ export const ComposableDrilldownMenu: React.FunctionComponent = () => {
</MenuContent>
</Menu>
);
return (
<Popper
trigger={toggle}
popper={menu}
appendTo={containerRef.current || undefined}
isVisible={isOpen}
popperMatchesTriggerWidth={false}
/>
);
return <Popper trigger={toggle} popper={menu} isVisible={isOpen} popperMatchesTriggerWidth={false} />;
};
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ export const ComposableDropdwnVariants: React.FunctionComponent = () => {
const [toggleSelected, setToggleSelected] = React.useState<string>('basic');
const menuRef = React.useRef<HTMLDivElement>();
const toggleRef = React.useRef<HTMLButtonElement>();
const containerRef = React.useRef<HTMLDivElement>();

const handleToggleSwitch = (selected: boolean, e: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent) => {
setToggleSelected(e.currentTarget.id);
Expand All @@ -33,7 +32,7 @@ export const ComposableDropdwnVariants: React.FunctionComponent = () => {
if (isOpen && menuRef && menuRef.current && menuRef.current.contains(event.target as Node)) {
if (event.key === 'Escape' || event.key === 'Tab') {
setIsOpen(!isOpen);
toggleRef.current.focus();
toggleRef?.current?.focus();
}
}
};
Expand Down Expand Up @@ -228,9 +227,8 @@ export const ComposableDropdwnVariants: React.FunctionComponent = () => {
</ToggleGroup>
<br />
<Popper
trigger={<div ref={containerRef}>{buildToggle()}</div>}
trigger={buildToggle()}
popper={menu}
appendTo={containerRef.current}
isVisible={isOpen}
popperMatchesTriggerWidth={['image', 'checkbox'].includes(toggleSelected)}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ export const ComposableFlyout: React.FunctionComponent = () => {
const [isOpen, setIsOpen] = React.useState<boolean>(false);
const menuRef = React.useRef<HTMLDivElement>(null);
const toggleRef = React.useRef<HTMLButtonElement>(null);
const containerRef = React.useRef<HTMLDivElement>(null);

const handleMenuKeys = (event: KeyboardEvent) => {
if (!isOpen) {
Expand Down Expand Up @@ -80,11 +79,9 @@ export const ComposableFlyout: React.FunctionComponent = () => {
};

const toggle = (
<div ref={containerRef}>
<MenuToggle onClick={onToggleClick} isExpanded={isOpen}>
{isOpen ? 'Expanded' : 'Collapsed'}
</MenuToggle>
</div>
<MenuToggle onClick={onToggleClick} isExpanded={isOpen}>
{isOpen ? 'Expanded' : 'Collapsed'}
</MenuToggle>
);

const menu = (
Expand All @@ -103,13 +100,5 @@ export const ComposableFlyout: React.FunctionComponent = () => {
</Menu>
);

return (
<Popper
trigger={toggle}
popper={menu}
appendTo={containerRef.current || undefined}
isVisible={isOpen}
popperMatchesTriggerWidth={false}
/>
);
return <Popper trigger={toggle} popper={menu} isVisible={isOpen} popperMatchesTriggerWidth={false} />;
};
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ export const ComposableMultipleTypeaheadSelect: React.FunctionComponent = () =>
const [focusedItemIndex, setFocusedItemIndex] = React.useState<number | null>(null);
const [activeItem, setActiveItem] = React.useState<string | null>(null);
const [selected, setSelected] = React.useState<string[]>([]);
const containerRef = React.useRef<HTMLDivElement>();
const menuToggleRef = React.useRef<MenuToggleElement>({} as MenuToggleElement);
const textInputRef = React.useRef<HTMLInputElement>();
const menuRef = React.useRef<HTMLDivElement>();
Expand Down Expand Up @@ -241,15 +240,12 @@ export const ComposableMultipleTypeaheadSelect: React.FunctionComponent = () =>
</Menu>
);
return (
<div ref={containerRef as React.Ref<HTMLDivElement>}>
<Popper
trigger={toggle}
popper={menu}
appendTo={containerRef.current}
isVisible={isMenuOpen}
onDocumentClick={onDocumentClick}
onDocumentKeyDown={onDocumentKeydown}
/>
</div>
<Popper
trigger={toggle}
popper={menu}
isVisible={isMenuOpen}
onDocumentClick={onDocumentClick}
onDocumentKeyDown={onDocumentKeydown}
/>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,18 @@ export const ComposableOptionsMenuVariants: React.FunctionComponent = () => {
const [selected, setSelected] = React.useState<string>('');
const menuRef = React.useRef<HTMLDivElement>();
const toggleRef = React.useRef<HTMLButtonElement>();
const containerRef = React.useRef<HTMLDivElement>();

const handleMenuKeys = (event: KeyboardEvent) => {
if (isOpen && menuRef.current.contains(event.target as Node)) {
if (isOpen && menuRef?.current?.contains(event.target as Node)) {
if (event.key === 'Escape' || event.key === 'Tab') {
setIsOpen(!isOpen);
toggleRef.current.focus();
toggleRef?.current?.focus();
}
}
};

const handleClickOutside = (event: MouseEvent) => {
if (isOpen && !menuRef.current.contains(event.target as Node)) {
if (isOpen && !menuRef?.current?.contains(event.target as Node)) {
setIsOpen(false);
}
};
Expand Down Expand Up @@ -47,11 +46,9 @@ export const ComposableOptionsMenuVariants: React.FunctionComponent = () => {
};

const toggle = (
<div ref={containerRef}>
<MenuToggle ref={toggleRef} onClick={onToggleClick} isExpanded={isOpen}>
Options menu
</MenuToggle>
</div>
<MenuToggle ref={toggleRef} onClick={onToggleClick} isExpanded={isOpen}>
Options menu
</MenuToggle>
);

const menu = (
Expand Down Expand Up @@ -95,5 +92,5 @@ export const ComposableOptionsMenuVariants: React.FunctionComponent = () => {
</MenuContent>
</Menu>
);
return <Popper trigger={toggle} popper={menu} appendTo={containerRef.current} isVisible={isOpen} />;
return <Popper trigger={toggle} popper={menu} isVisible={isOpen} />;
};
Loading

0 comments on commit 0fb481c

Please sign in to comment.