@patternfly/react-core 5.0.0-alpha.15 → 5.0.0-alpha.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/components/ClipboardCopy/ClipboardCopyButton.d.ts.map +1 -1
- package/components/ClipboardCopy/ClipboardCopyButton.js +3 -2
- package/components/ClipboardCopy/ClipboardCopyButton.js.map +1 -1
- package/components/ContextSelector/ContextSelector.d.ts.map +1 -1
- package/components/ContextSelector/ContextSelector.js +1 -1
- package/components/ContextSelector/ContextSelector.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/components/DatePicker/DatePicker.js +6 -5
- package/components/DatePicker/DatePicker.js.map +1 -1
- package/components/Drawer/DrawerPanelContent.d.ts +1 -1
- package/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
- package/components/Drawer/DrawerPanelContent.js +5 -5
- package/components/Drawer/DrawerPanelContent.js.map +1 -1
- package/components/Dropdown/DropdownWithContext.d.ts.map +1 -1
- package/components/Dropdown/DropdownWithContext.js +4 -3
- package/components/Dropdown/DropdownWithContext.js.map +1 -1
- package/components/DualListSelector/DualListSelectorControl.js +1 -1
- package/components/DualListSelector/DualListSelectorControl.js.map +1 -1
- package/components/InputGroup/InputGroup.d.ts +3 -2
- package/components/InputGroup/InputGroup.d.ts.map +1 -1
- package/components/InputGroup/InputGroup.js +3 -2
- package/components/InputGroup/InputGroup.js.map +1 -1
- package/components/Label/Label.js +1 -1
- package/components/Label/Label.js.map +1 -1
- package/components/Menu/MenuContent.d.ts +1 -1
- package/components/Menu/MenuContent.d.ts.map +1 -1
- package/components/Nav/NavItem.d.ts.map +1 -1
- package/components/Nav/NavItem.js +3 -3
- package/components/Nav/NavItem.js.map +1 -1
- package/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
- package/components/Pagination/PaginationOptionsMenu.js +4 -4
- package/components/Pagination/PaginationOptionsMenu.js.map +1 -1
- package/components/Popover/Popover.d.ts +9 -8
- package/components/Popover/Popover.d.ts.map +1 -1
- package/components/Popover/Popover.js +4 -3
- package/components/Popover/Popover.js.map +1 -1
- package/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/components/SearchInput/SearchInput.js +5 -3
- package/components/SearchInput/SearchInput.js.map +1 -1
- package/components/Select/Select.d.ts.map +1 -1
- package/components/Select/Select.js +3 -2
- package/components/Select/Select.js.map +1 -1
- package/components/SkipToContent/SkipToContent.d.ts +2 -11
- package/components/SkipToContent/SkipToContent.d.ts.map +1 -1
- package/components/SkipToContent/SkipToContent.js +6 -20
- package/components/SkipToContent/SkipToContent.js.map +1 -1
- package/components/Slider/Slider.js +5 -5
- package/components/Slider/Slider.js.map +1 -1
- package/components/Tabs/OverflowTab.js +5 -5
- package/components/Tabs/OverflowTab.js.map +1 -1
- package/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/components/TimePicker/TimePicker.js +1 -1
- package/components/TimePicker/TimePicker.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +8 -7
- package/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/components/Tooltip/Tooltip.js +5 -4
- package/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.d.ts.map +1 -1
- package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.js +3 -2
- package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.js.map +1 -1
- package/dist/esm/components/ContextSelector/ContextSelector.d.ts.map +1 -1
- package/dist/esm/components/ContextSelector/ContextSelector.js +1 -1
- package/dist/esm/components/ContextSelector/ContextSelector.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +6 -5
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/Drawer/DrawerPanelContent.d.ts +1 -1
- package/dist/esm/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
- package/dist/esm/components/Drawer/DrawerPanelContent.js +5 -5
- package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
- package/dist/esm/components/Dropdown/DropdownWithContext.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/DropdownWithContext.js +4 -3
- package/dist/esm/components/Dropdown/DropdownWithContext.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControl.js +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControl.js.map +1 -1
- package/dist/esm/components/InputGroup/InputGroup.d.ts +3 -2
- package/dist/esm/components/InputGroup/InputGroup.d.ts.map +1 -1
- package/dist/esm/components/InputGroup/InputGroup.js +3 -2
- package/dist/esm/components/InputGroup/InputGroup.js.map +1 -1
- package/dist/esm/components/Label/Label.js +1 -1
- package/dist/esm/components/Label/Label.js.map +1 -1
- package/dist/esm/components/Menu/MenuContent.d.ts +1 -1
- package/dist/esm/components/Menu/MenuContent.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavItem.js +3 -3
- package/dist/esm/components/Nav/NavItem.js.map +1 -1
- package/dist/esm/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
- package/dist/esm/components/Pagination/PaginationOptionsMenu.js +4 -4
- package/dist/esm/components/Pagination/PaginationOptionsMenu.js.map +1 -1
- package/dist/esm/components/Popover/Popover.d.ts +9 -8
- package/dist/esm/components/Popover/Popover.d.ts.map +1 -1
- package/dist/esm/components/Popover/Popover.js +4 -3
- package/dist/esm/components/Popover/Popover.js.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.js +5 -3
- package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +3 -2
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/SkipToContent/SkipToContent.d.ts +2 -11
- package/dist/esm/components/SkipToContent/SkipToContent.d.ts.map +1 -1
- package/dist/esm/components/SkipToContent/SkipToContent.js +6 -20
- package/dist/esm/components/SkipToContent/SkipToContent.js.map +1 -1
- package/dist/esm/components/Slider/Slider.js +5 -5
- package/dist/esm/components/Slider/Slider.js.map +1 -1
- package/dist/esm/components/Tabs/OverflowTab.js +5 -5
- package/dist/esm/components/Tabs/OverflowTab.js.map +1 -1
- package/dist/esm/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/dist/esm/components/TimePicker/TimePicker.js +1 -1
- package/dist/esm/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.d.ts +8 -7
- package/dist/esm/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js +5 -4
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/helpers/Popper/Popper.d.ts +10 -7
- package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/esm/helpers/Popper/Popper.js +11 -14
- package/dist/esm/helpers/Popper/Popper.js.map +1 -1
- package/dist/esm/next/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/next/components/Dropdown/Dropdown.js +1 -1
- package/dist/esm/next/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/next/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/next/components/Select/Select.js +1 -1
- package/dist/esm/next/components/Select/Select.js.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopyButton.d.ts.map +1 -1
- package/dist/js/components/ClipboardCopy/ClipboardCopyButton.js +3 -2
- package/dist/js/components/ClipboardCopy/ClipboardCopyButton.js.map +1 -1
- package/dist/js/components/ContextSelector/ContextSelector.d.ts.map +1 -1
- package/dist/js/components/ContextSelector/ContextSelector.js +1 -1
- package/dist/js/components/ContextSelector/ContextSelector.js.map +1 -1
- package/dist/js/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/js/components/DatePicker/DatePicker.js +6 -5
- package/dist/js/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/js/components/Drawer/DrawerPanelContent.d.ts +1 -1
- package/dist/js/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
- package/dist/js/components/Drawer/DrawerPanelContent.js +5 -5
- package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
- package/dist/js/components/Dropdown/DropdownWithContext.d.ts.map +1 -1
- package/dist/js/components/Dropdown/DropdownWithContext.js +4 -3
- package/dist/js/components/Dropdown/DropdownWithContext.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControl.js +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControl.js.map +1 -1
- package/dist/js/components/InputGroup/InputGroup.d.ts +3 -2
- package/dist/js/components/InputGroup/InputGroup.d.ts.map +1 -1
- package/dist/js/components/InputGroup/InputGroup.js +5 -4
- package/dist/js/components/InputGroup/InputGroup.js.map +1 -1
- package/dist/js/components/Label/Label.js +1 -1
- package/dist/js/components/Label/Label.js.map +1 -1
- package/dist/js/components/Menu/MenuContent.d.ts +1 -1
- package/dist/js/components/Menu/MenuContent.d.ts.map +1 -1
- package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/js/components/Nav/NavItem.js +3 -3
- package/dist/js/components/Nav/NavItem.js.map +1 -1
- package/dist/js/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
- package/dist/js/components/Pagination/PaginationOptionsMenu.js +4 -4
- package/dist/js/components/Pagination/PaginationOptionsMenu.js.map +1 -1
- package/dist/js/components/Popover/Popover.d.ts +9 -8
- package/dist/js/components/Popover/Popover.d.ts.map +1 -1
- package/dist/js/components/Popover/Popover.js +4 -3
- package/dist/js/components/Popover/Popover.js.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.js +5 -3
- package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/js/components/Select/Select.d.ts.map +1 -1
- package/dist/js/components/Select/Select.js +3 -2
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/js/components/SkipToContent/SkipToContent.d.ts +2 -11
- package/dist/js/components/SkipToContent/SkipToContent.d.ts.map +1 -1
- package/dist/js/components/SkipToContent/SkipToContent.js +7 -21
- package/dist/js/components/SkipToContent/SkipToContent.js.map +1 -1
- package/dist/js/components/Slider/Slider.js +5 -5
- package/dist/js/components/Slider/Slider.js.map +1 -1
- package/dist/js/components/Tabs/OverflowTab.js +5 -5
- package/dist/js/components/Tabs/OverflowTab.js.map +1 -1
- package/dist/js/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/dist/js/components/TimePicker/TimePicker.js +1 -1
- package/dist/js/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/js/components/Tooltip/Tooltip.d.ts +8 -7
- package/dist/js/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/js/components/Tooltip/Tooltip.js +5 -4
- package/dist/js/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/js/helpers/Popper/Popper.d.ts +10 -7
- package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/js/helpers/Popper/Popper.js +11 -14
- package/dist/js/helpers/Popper/Popper.js.map +1 -1
- package/dist/js/next/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/next/components/Dropdown/Dropdown.js +1 -1
- package/dist/js/next/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/next/components/Select/Select.d.ts.map +1 -1
- package/dist/js/next/components/Select/Select.js +1 -1
- package/dist/js/next/components/Select/Select.js.map +1 -1
- package/dist/umd/react-core.min.js +2 -2
- package/helpers/Popper/Popper.d.ts +10 -7
- package/helpers/Popper/Popper.d.ts.map +1 -1
- package/helpers/Popper/Popper.js +11 -14
- package/helpers/Popper/Popper.js.map +1 -1
- package/next/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/next/components/Dropdown/Dropdown.js +1 -1
- package/next/components/Dropdown/Dropdown.js.map +1 -1
- package/next/components/Select/Select.d.ts.map +1 -1
- package/next/components/Select/Select.js +1 -1
- package/next/components/Select/Select.js.map +1 -1
- package/package.json +2 -2
- package/src/components/ClipboardCopy/ClipboardCopyButton.tsx +30 -24
- package/src/components/ClipboardCopy/__tests__/Generated/__snapshots__/ClipboardCopy.test.tsx.snap +23 -27
- package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyButton.test.tsx.snap +23 -27
- package/src/components/ContextSelector/ContextSelector.tsx +2 -0
- package/src/components/DatePicker/DatePicker.tsx +7 -5
- package/src/components/DatePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +732 -744
- package/src/components/Drawer/DrawerPanelContent.tsx +9 -10
- package/src/components/Drawer/examples/DrawerResizableOnRight.tsx +1 -1
- package/src/components/Dropdown/DropdownWithContext.tsx +6 -1
- package/src/components/DualListSelector/DualListSelectorControl.tsx +1 -1
- package/src/components/InputGroup/InputGroup.tsx +7 -3
- package/src/components/Label/Label.tsx +1 -1
- package/src/components/LabelGroup/examples/LabelGroupEditableAddDropdown.tsx +10 -1
- package/src/components/LabelGroup/examples/LabelGroupEditableAddModal.tsx +4 -0
- package/src/components/Menu/MenuContent.tsx +1 -1
- package/src/components/Nav/NavItem.tsx +4 -3
- package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +7 -11
- package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +13 -5
- package/src/components/Pagination/PaginationOptionsMenu.tsx +5 -3
- package/src/components/Pagination/__tests__/Generated/__snapshots__/PaginationOptionsMenu.test.tsx.snap +35 -39
- package/src/components/Pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +694 -774
- package/src/components/Popover/Popover.tsx +14 -10
- package/src/components/Popover/examples/PopoverReactRef.tsx +1 -1
- package/src/components/Popover/examples/PopoverSelectorRef.tsx +1 -1
- package/src/components/ProgressStepper/examples/ProgressStepperHelpPopover.tsx +6 -6
- package/src/components/SearchInput/SearchInput.tsx +6 -2
- package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +411 -427
- package/src/components/Select/Select.tsx +4 -0
- package/src/components/SkipToContent/SkipToContent.tsx +15 -32
- package/src/components/SkipToContent/__tests__/SkipToContent.test.tsx +0 -5
- package/src/components/SkipToContent/__tests__/__snapshots__/SkipToContent.test.tsx.snap +12 -13
- package/src/components/Slider/Slider.tsx +5 -5
- package/src/components/Slider/_tests_/__snapshots__/Slider.test.tsx.snap +10 -14
- package/src/components/Tabs/OverflowTab.tsx +5 -5
- package/src/components/Tabs/examples/TabsHelp.tsx +1 -1
- package/src/components/Tabs/examples/TabsHelpAndClose.tsx +6 -2
- package/src/components/Tabs/examples/TabsTooltipReactRef.tsx +1 -1
- package/src/components/TimePicker/TimePicker.tsx +2 -0
- package/src/components/Tooltip/Tooltip.tsx +15 -11
- package/src/components/Tooltip/__tests__/Tooltip.test.tsx +6 -2
- package/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +4 -12
- package/src/components/Tooltip/examples/TooltipReactRef.tsx +1 -1
- package/src/components/Tooltip/examples/TooltipSelectorRef.tsx +1 -1
- package/src/demos/ComposableMenu/examples/ComposableActionsMenu.tsx +11 -2
- package/src/demos/ComposableMenu/examples/ComposableApplicationLauncher.tsx +23 -14
- package/src/demos/ComposableMenu/examples/ComposableContextSelector.tsx +11 -2
- package/src/demos/ComposableMenu/examples/ComposableDateSelect.tsx +10 -1
- package/src/demos/ComposableMenu/examples/ComposableDrilldownMenu.tsx +10 -1
- package/src/demos/ComposableMenu/examples/ComposableDropdwnVariants.tsx +7 -5
- package/src/demos/ComposableMenu/examples/ComposableFlyout.tsx +11 -2
- package/src/demos/ComposableMenu/examples/ComposableMultipleTypeaheadSelect.tsx +12 -10
- package/src/demos/ComposableMenu/examples/ComposableOptionsMenuVariants.tsx +1 -1
- package/src/demos/ComposableMenu/examples/ComposableSimpleCheckboxSelect.tsx +4 -4
- package/src/demos/ComposableMenu/examples/ComposableSimpleDropdown.tsx +2 -2
- package/src/demos/ComposableMenu/examples/ComposableSimpleSelect.tsx +1 -1
- package/src/demos/ComposableMenu/examples/ComposableTreeViewMenu.tsx +22 -11
- package/src/demos/ComposableMenu/examples/ComposableTypeaheadSelect.tsx +11 -9
- package/src/demos/Filters/examples/FilterAttributeSearch.tsx +13 -5
- package/src/demos/Filters/examples/FilterCheckboxSelect.tsx +16 -7
- package/src/demos/Filters/examples/FilterFaceted.tsx +18 -9
- package/src/demos/Filters/examples/FilterMixedSelectGroup.tsx +11 -5
- package/src/demos/Filters/examples/FilterSameSelectGroup.tsx +10 -4
- package/src/demos/Filters/examples/FilterSearchInput.tsx +6 -4
- package/src/demos/Filters/examples/FilterSingleSelect.tsx +14 -5
- package/src/demos/PasswordGenerator.md +6 -2
- package/src/demos/SearchInput/SearchInput.md +5 -1
- package/src/demos/examples/TextInputGroup/AttributeValueFiltering.tsx +13 -4
- package/src/demos/examples/TextInputGroup/AutoCompleteSearch.tsx +5 -3
- package/src/helpers/Popper/Popper.tsx +31 -23
- package/src/next/components/Dropdown/Dropdown.tsx +2 -0
- package/src/next/components/Select/Select.tsx +2 -0
|
@@ -81,12 +81,12 @@ export const FilterMixedSelectGroup: React.FunctionComponent = () => {
|
|
|
81
81
|
const isRepoSelectable = (repo: Repository) => repo.name !== 'a'; // Arbitrary logic for this example
|
|
82
82
|
const [selectedRepoNames, setSelectedRepoNames] = React.useState<string[]>([]);
|
|
83
83
|
const setRepoSelected = (repo: Repository, isSelecting = true) =>
|
|
84
|
-
setSelectedRepoNames(prevSelected => {
|
|
85
|
-
const otherSelectedRepoNames = prevSelected.filter(r => r !== repo.name);
|
|
84
|
+
setSelectedRepoNames((prevSelected) => {
|
|
85
|
+
const otherSelectedRepoNames = prevSelected.filter((r) => r !== repo.name);
|
|
86
86
|
return isSelecting && isRepoSelectable(repo) ? [...otherSelectedRepoNames, repo.name] : otherSelectedRepoNames;
|
|
87
87
|
});
|
|
88
88
|
const selectAllRepos = (isSelecting = true) =>
|
|
89
|
-
setSelectedRepoNames(isSelecting ? filteredRepos.map(r => r.name) : []); // Selecting all should only select all currently filtered rows
|
|
89
|
+
setSelectedRepoNames(isSelecting ? filteredRepos.map((r) => r.name) : []); // Selecting all should only select all currently filtered rows
|
|
90
90
|
const areAllReposSelected = selectedRepoNames.length === filteredRepos.length && filteredRepos.length > 0;
|
|
91
91
|
const areSomeReposSelected = selectedRepoNames.length > 0;
|
|
92
92
|
const isRepoSelected = (repo: Repository) => selectedRepoNames.includes(repo.name);
|
|
@@ -103,7 +103,7 @@ export const FilterMixedSelectGroup: React.FunctionComponent = () => {
|
|
|
103
103
|
numberSelected > 0
|
|
104
104
|
? Array.from(new Array(numberSelected + 1), (_x, i) => i + recentSelectedRowIndex)
|
|
105
105
|
: Array.from(new Array(Math.abs(numberSelected) + 1), (_x, i) => i + rowIndex);
|
|
106
|
-
intermediateIndexes.forEach(index => setRepoSelected(repositories[index], isSelecting));
|
|
106
|
+
intermediateIndexes.forEach((index) => setRepoSelected(repositories[index], isSelecting));
|
|
107
107
|
} else {
|
|
108
108
|
setRepoSelected(repo, isSelecting);
|
|
109
109
|
}
|
|
@@ -230,7 +230,9 @@ export const FilterMixedSelectGroup: React.FunctionComponent = () => {
|
|
|
230
230
|
<div ref={bulkSelectContainerRef}>
|
|
231
231
|
<Popper
|
|
232
232
|
trigger={bulkSelectToggle}
|
|
233
|
+
triggerRef={bulkSelectToggleRef}
|
|
233
234
|
popper={bulkSelectMenu}
|
|
235
|
+
popperRef={bulkSelectMenuRef}
|
|
234
236
|
appendTo={bulkSelectContainerRef.current || undefined}
|
|
235
237
|
isVisible={isBulkSelectOpen}
|
|
236
238
|
popperMatchesTriggerWidth={false}
|
|
@@ -322,7 +324,9 @@ export const FilterMixedSelectGroup: React.FunctionComponent = () => {
|
|
|
322
324
|
<div ref={statusContainerRef}>
|
|
323
325
|
<Popper
|
|
324
326
|
trigger={statusToggle}
|
|
327
|
+
triggerRef={statusToggleRef}
|
|
325
328
|
popper={statusMenu}
|
|
329
|
+
popperRef={statusMenuRef}
|
|
326
330
|
appendTo={statusContainerRef.current || undefined}
|
|
327
331
|
isVisible={isStatusMenuOpen}
|
|
328
332
|
/>
|
|
@@ -379,7 +383,7 @@ export const FilterMixedSelectGroup: React.FunctionComponent = () => {
|
|
|
379
383
|
|
|
380
384
|
setLocationSelections(
|
|
381
385
|
locationSelections.includes(itemStr)
|
|
382
|
-
? locationSelections.filter(selection => selection !== itemStr)
|
|
386
|
+
? locationSelections.filter((selection) => selection !== itemStr)
|
|
383
387
|
: [itemStr, ...locationSelections]
|
|
384
388
|
);
|
|
385
389
|
}
|
|
@@ -434,7 +438,9 @@ export const FilterMixedSelectGroup: React.FunctionComponent = () => {
|
|
|
434
438
|
<div ref={locationContainerRef}>
|
|
435
439
|
<Popper
|
|
436
440
|
trigger={locationToggle}
|
|
441
|
+
triggerRef={locationToggleRef}
|
|
437
442
|
popper={locationMenu}
|
|
443
|
+
popperRef={locationMenuRef}
|
|
438
444
|
appendTo={locationContainerRef.current || undefined}
|
|
439
445
|
isVisible={isLocationMenuOpen}
|
|
440
446
|
/>
|
|
@@ -82,12 +82,12 @@ export const FilterSameSelectGroup: React.FunctionComponent = () => {
|
|
|
82
82
|
const isRepoSelectable = (repo: Repository) => repo.name !== 'a'; // Arbitrary logic for this example
|
|
83
83
|
const [selectedRepoNames, setSelectedRepoNames] = React.useState<string[]>([]);
|
|
84
84
|
const setRepoSelected = (repo: Repository, isSelecting = true) =>
|
|
85
|
-
setSelectedRepoNames(prevSelected => {
|
|
86
|
-
const otherSelectedRepoNames = prevSelected.filter(r => r !== repo.name);
|
|
85
|
+
setSelectedRepoNames((prevSelected) => {
|
|
86
|
+
const otherSelectedRepoNames = prevSelected.filter((r) => r !== repo.name);
|
|
87
87
|
return isSelecting && isRepoSelectable(repo) ? [...otherSelectedRepoNames, repo.name] : otherSelectedRepoNames;
|
|
88
88
|
});
|
|
89
89
|
const selectAllRepos = (isSelecting = true) =>
|
|
90
|
-
setSelectedRepoNames(isSelecting ? filteredRepos.map(r => r.name) : []); // Selecting all should only select all currently filtered rows
|
|
90
|
+
setSelectedRepoNames(isSelecting ? filteredRepos.map((r) => r.name) : []); // Selecting all should only select all currently filtered rows
|
|
91
91
|
const areAllReposSelected = selectedRepoNames.length === filteredRepos.length && filteredRepos.length > 0;
|
|
92
92
|
const areSomeReposSelected = selectedRepoNames.length > 0;
|
|
93
93
|
const isRepoSelected = (repo: Repository) => selectedRepoNames.includes(repo.name);
|
|
@@ -104,7 +104,7 @@ export const FilterSameSelectGroup: React.FunctionComponent = () => {
|
|
|
104
104
|
numberSelected > 0
|
|
105
105
|
? Array.from(new Array(numberSelected + 1), (_x, i) => i + recentSelectedRowIndex)
|
|
106
106
|
: Array.from(new Array(Math.abs(numberSelected) + 1), (_x, i) => i + rowIndex);
|
|
107
|
-
intermediateIndexes.forEach(index => setRepoSelected(repositories[index], isSelecting));
|
|
107
|
+
intermediateIndexes.forEach((index) => setRepoSelected(repositories[index], isSelecting));
|
|
108
108
|
} else {
|
|
109
109
|
setRepoSelected(repo, isSelecting);
|
|
110
110
|
}
|
|
@@ -231,7 +231,9 @@ export const FilterSameSelectGroup: React.FunctionComponent = () => {
|
|
|
231
231
|
<div ref={bulkSelectContainerRef}>
|
|
232
232
|
<Popper
|
|
233
233
|
trigger={bulkSelectToggle}
|
|
234
|
+
triggerRef={bulkSelectToggleRef}
|
|
234
235
|
popper={bulkSelectMenu}
|
|
236
|
+
popperRef={bulkSelectMenuRef}
|
|
235
237
|
appendTo={bulkSelectContainerRef.current || undefined}
|
|
236
238
|
isVisible={isBulkSelectOpen}
|
|
237
239
|
popperMatchesTriggerWidth={false}
|
|
@@ -324,7 +326,9 @@ export const FilterSameSelectGroup: React.FunctionComponent = () => {
|
|
|
324
326
|
<div ref={statusContainerRef}>
|
|
325
327
|
<Popper
|
|
326
328
|
trigger={statusToggle}
|
|
329
|
+
triggerRef={statusToggleRef}
|
|
327
330
|
popper={statusMenu}
|
|
331
|
+
popperRef={statusMenuRef}
|
|
328
332
|
appendTo={statusContainerRef.current || undefined}
|
|
329
333
|
isVisible={isStatusMenuOpen}
|
|
330
334
|
/>
|
|
@@ -421,7 +425,9 @@ export const FilterSameSelectGroup: React.FunctionComponent = () => {
|
|
|
421
425
|
<div ref={locationContainerRef}>
|
|
422
426
|
<Popper
|
|
423
427
|
trigger={locationToggle}
|
|
428
|
+
triggerRef={locationToggleRef}
|
|
424
429
|
popper={locationMenu}
|
|
430
|
+
popperRef={locationMenuRef}
|
|
425
431
|
appendTo={locationContainerRef.current || undefined}
|
|
426
432
|
isVisible={isLocationMenuOpen}
|
|
427
433
|
/>
|
|
@@ -85,12 +85,12 @@ export const FilterSearchInput: React.FunctionComponent = () => {
|
|
|
85
85
|
const isRepoSelectable = (repo: Repository) => repo.name !== 'a'; // Arbitrary logic for this example
|
|
86
86
|
const [selectedRepoNames, setSelectedRepoNames] = React.useState<string[]>([]);
|
|
87
87
|
const setRepoSelected = (repo: Repository, isSelecting = true) =>
|
|
88
|
-
setSelectedRepoNames(prevSelected => {
|
|
89
|
-
const otherSelectedRepoNames = prevSelected.filter(r => r !== repo.name);
|
|
88
|
+
setSelectedRepoNames((prevSelected) => {
|
|
89
|
+
const otherSelectedRepoNames = prevSelected.filter((r) => r !== repo.name);
|
|
90
90
|
return isSelecting && isRepoSelectable(repo) ? [...otherSelectedRepoNames, repo.name] : otherSelectedRepoNames;
|
|
91
91
|
});
|
|
92
92
|
const selectAllRepos = (isSelecting = true) =>
|
|
93
|
-
setSelectedRepoNames(isSelecting ? filteredRepos.map(r => r.name) : []); // Selecting all should only select all currently filtered rows
|
|
93
|
+
setSelectedRepoNames(isSelecting ? filteredRepos.map((r) => r.name) : []); // Selecting all should only select all currently filtered rows
|
|
94
94
|
const areAllReposSelected = selectedRepoNames.length === filteredRepos.length && filteredRepos.length > 0;
|
|
95
95
|
const areSomeReposSelected = selectedRepoNames.length > 0;
|
|
96
96
|
const isRepoSelected = (repo: Repository) => selectedRepoNames.includes(repo.name);
|
|
@@ -107,7 +107,7 @@ export const FilterSearchInput: React.FunctionComponent = () => {
|
|
|
107
107
|
numberSelected > 0
|
|
108
108
|
? Array.from(new Array(numberSelected + 1), (_x, i) => i + recentSelectedRowIndex)
|
|
109
109
|
: Array.from(new Array(Math.abs(numberSelected) + 1), (_x, i) => i + rowIndex);
|
|
110
|
-
intermediateIndexes.forEach(index => setRepoSelected(repositories[index], isSelecting));
|
|
110
|
+
intermediateIndexes.forEach((index) => setRepoSelected(repositories[index], isSelecting));
|
|
111
111
|
} else {
|
|
112
112
|
setRepoSelected(repo, isSelecting);
|
|
113
113
|
}
|
|
@@ -234,7 +234,9 @@ export const FilterSearchInput: React.FunctionComponent = () => {
|
|
|
234
234
|
<div ref={bulkSelectContainerRef}>
|
|
235
235
|
<Popper
|
|
236
236
|
trigger={bulkSelectToggle}
|
|
237
|
+
triggerRef={bulkSelectToggleRef}
|
|
237
238
|
popper={bulkSelectMenu}
|
|
239
|
+
popperRef={bulkSelectMenuRef}
|
|
238
240
|
appendTo={bulkSelectContainerRef.current || undefined}
|
|
239
241
|
isVisible={isBulkSelectOpen}
|
|
240
242
|
popperMatchesTriggerWidth={false}
|
|
@@ -73,12 +73,12 @@ export const FilterSingleSelect: React.FunctionComponent = () => {
|
|
|
73
73
|
const isRepoSelectable = (repo: Repository) => repo.name !== 'a'; // Arbitrary logic for this example
|
|
74
74
|
const [selectedRepoNames, setSelectedRepoNames] = React.useState<string[]>([]);
|
|
75
75
|
const setRepoSelected = (repo: Repository, isSelecting = true) =>
|
|
76
|
-
setSelectedRepoNames(prevSelected => {
|
|
77
|
-
const otherSelectedRepoNames = prevSelected.filter(r => r !== repo.name);
|
|
76
|
+
setSelectedRepoNames((prevSelected) => {
|
|
77
|
+
const otherSelectedRepoNames = prevSelected.filter((r) => r !== repo.name);
|
|
78
78
|
return isSelecting && isRepoSelectable(repo) ? [...otherSelectedRepoNames, repo.name] : otherSelectedRepoNames;
|
|
79
79
|
});
|
|
80
80
|
const selectAllRepos = (isSelecting = true) =>
|
|
81
|
-
setSelectedRepoNames(isSelecting ? filteredRepos.map(r => r.name) : []);
|
|
81
|
+
setSelectedRepoNames(isSelecting ? filteredRepos.map((r) => r.name) : []);
|
|
82
82
|
const areAllReposSelected = selectedRepoNames.length === filteredRepos.length && filteredRepos.length > 0;
|
|
83
83
|
const areSomeReposSelected = selectedRepoNames.length > 0;
|
|
84
84
|
const isRepoSelected = (repo: Repository) => selectedRepoNames.includes(repo.name);
|
|
@@ -95,7 +95,7 @@ export const FilterSingleSelect: React.FunctionComponent = () => {
|
|
|
95
95
|
numberSelected > 0
|
|
96
96
|
? Array.from(new Array(numberSelected + 1), (_x, i) => i + recentSelectedRowIndex)
|
|
97
97
|
: Array.from(new Array(Math.abs(numberSelected) + 1), (_x, i) => i + rowIndex);
|
|
98
|
-
intermediateIndexes.forEach(index => setRepoSelected(repositories[index], isSelecting));
|
|
98
|
+
intermediateIndexes.forEach((index) => setRepoSelected(repositories[index], isSelecting));
|
|
99
99
|
} else {
|
|
100
100
|
setRepoSelected(repo, isSelecting);
|
|
101
101
|
}
|
|
@@ -221,7 +221,9 @@ export const FilterSingleSelect: React.FunctionComponent = () => {
|
|
|
221
221
|
<div ref={bulkSelectContainerRef}>
|
|
222
222
|
<Popper
|
|
223
223
|
trigger={bulkSelectToggle}
|
|
224
|
+
triggerRef={bulkSelectToggleRef}
|
|
224
225
|
popper={bulkSelectMenu}
|
|
226
|
+
popperRef={bulkSelectMenuRef}
|
|
225
227
|
appendTo={bulkSelectContainerRef.current || undefined}
|
|
226
228
|
isVisible={isBulkSelectOpen}
|
|
227
229
|
popperMatchesTriggerWidth={false}
|
|
@@ -323,7 +325,14 @@ export const FilterSingleSelect: React.FunctionComponent = () => {
|
|
|
323
325
|
|
|
324
326
|
const select = (
|
|
325
327
|
<div ref={containerRef}>
|
|
326
|
-
<Popper
|
|
328
|
+
<Popper
|
|
329
|
+
trigger={toggle}
|
|
330
|
+
triggerRef={toggleRef}
|
|
331
|
+
popper={menu}
|
|
332
|
+
popperRef={menuRef}
|
|
333
|
+
appendTo={containerRef.current || undefined}
|
|
334
|
+
isVisible={isOpen}
|
|
335
|
+
/>
|
|
327
336
|
</div>
|
|
328
337
|
);
|
|
329
338
|
|
|
@@ -96,7 +96,9 @@ const PasswordGenerator: React.FunctionComponent = () => {
|
|
|
96
96
|
};
|
|
97
97
|
|
|
98
98
|
// The autocomplete menu should close if the user clicks outside the menu.
|
|
99
|
-
const handleClickOutside = (
|
|
99
|
+
const handleClickOutside = (
|
|
100
|
+
event: MouseEvent | TouchEvent | KeyboardEvent | React.KeyboardEvent<any> | React.MouseEvent<HTMLButtonElement>
|
|
101
|
+
) => {
|
|
100
102
|
if (
|
|
101
103
|
isAutocompleteOpen &&
|
|
102
104
|
autocompleteRef &&
|
|
@@ -146,7 +148,7 @@ const PasswordGenerator: React.FunctionComponent = () => {
|
|
|
146
148
|
actions={
|
|
147
149
|
<MenuItemAction
|
|
148
150
|
icon={<RedoIcon aria-hidden />}
|
|
149
|
-
onClick={e => {
|
|
151
|
+
onClick={(e) => {
|
|
150
152
|
setGeneratedPassword(generatePassword());
|
|
151
153
|
}}
|
|
152
154
|
actionId="redo"
|
|
@@ -164,7 +166,9 @@ const PasswordGenerator: React.FunctionComponent = () => {
|
|
|
164
166
|
return (
|
|
165
167
|
<Popper
|
|
166
168
|
trigger={textInput}
|
|
169
|
+
triggerRef={searchInputRef}
|
|
167
170
|
popper={autocomplete}
|
|
171
|
+
popperRef={autocompleteRef}
|
|
168
172
|
isVisible={isAutocompleteOpen}
|
|
169
173
|
enableFlip={false}
|
|
170
174
|
// append the autocomplete menu to the search input in the DOM for the sake of the keyboard navigation experience
|
|
@@ -173,7 +173,9 @@ SearchAutocomplete = () => {
|
|
|
173
173
|
return (
|
|
174
174
|
<Popper
|
|
175
175
|
trigger={searchInput}
|
|
176
|
+
triggerRef={searchInputRef}
|
|
176
177
|
popper={autocomplete}
|
|
178
|
+
popperRef={autocompleteRef}
|
|
177
179
|
isVisible={isAutocompleteOpen}
|
|
178
180
|
enableFlip={false}
|
|
179
181
|
// append the autocomplete menu to the search input in the DOM for the sake of the keyboard navigation experience
|
|
@@ -445,7 +447,7 @@ AdvancedComposableSearchInput = () => {
|
|
|
445
447
|
<Grid hasGutter md={6}>
|
|
446
448
|
<GridItem>
|
|
447
449
|
<FormGroup label='Date within' fieldId='date-within' key='date-within'>
|
|
448
|
-
<Popper trigger={dateWithinToggle} popper={dateWithinOptions} isVisible={isDateWithinOpen} />
|
|
450
|
+
<Popper trigger={dateWithinToggle} triggerRef={dateWithinToggleRef} popper={dateWithinOptions} popperRef={dateWithinMenuRef} isVisible={isDateWithinOpen} />
|
|
449
451
|
</FormGroup>
|
|
450
452
|
</GridItem>
|
|
451
453
|
<GridItem>
|
|
@@ -477,7 +479,9 @@ AdvancedComposableSearchInput = () => {
|
|
|
477
479
|
return (
|
|
478
480
|
<Popper
|
|
479
481
|
trigger={searchInput}
|
|
482
|
+
triggerRef={searchInputRef}
|
|
480
483
|
popper={advancedForm}
|
|
484
|
+
popperRef={advancedSearchPaneRef}
|
|
481
485
|
isVisible={isAdvancedSearchOpen}
|
|
482
486
|
enableFlip={false}
|
|
483
487
|
appendTo={() => document.querySelector("#custom-advanced-search")}
|
|
@@ -50,7 +50,7 @@ export const AttributeValueFiltering: React.FunctionComponent = () => {
|
|
|
50
50
|
|
|
51
51
|
/** callback for removing a chip from the chip selections */
|
|
52
52
|
const deleteChip = (chipToDelete: string) => {
|
|
53
|
-
const newChips = currentChips.filter(chip => !Object.is(chip, chipToDelete));
|
|
53
|
+
const newChips = currentChips.filter((chip) => !Object.is(chip, chipToDelete));
|
|
54
54
|
setCurrentChips(newChips);
|
|
55
55
|
};
|
|
56
56
|
|
|
@@ -71,7 +71,7 @@ export const AttributeValueFiltering: React.FunctionComponent = () => {
|
|
|
71
71
|
/** in the menu only show items that include the text in the input */
|
|
72
72
|
const filteredMenuItems = menuItemsText
|
|
73
73
|
.filter(
|
|
74
|
-
item =>
|
|
74
|
+
(item) =>
|
|
75
75
|
!inputValue ||
|
|
76
76
|
item.toLowerCase().includes(
|
|
77
77
|
inputValue
|
|
@@ -225,7 +225,7 @@ export const AttributeValueFiltering: React.FunctionComponent = () => {
|
|
|
225
225
|
onKeyDown={handleTextInputKeyDown}
|
|
226
226
|
>
|
|
227
227
|
<ChipGroup>
|
|
228
|
-
{currentChips.map(currentChip => (
|
|
228
|
+
{currentChips.map((currentChip) => (
|
|
229
229
|
<Chip key={currentChip} onClick={() => deleteChip(currentChip)}>
|
|
230
230
|
{currentChip}
|
|
231
231
|
</Chip>
|
|
@@ -255,5 +255,14 @@ export const AttributeValueFiltering: React.FunctionComponent = () => {
|
|
|
255
255
|
</div>
|
|
256
256
|
);
|
|
257
257
|
|
|
258
|
-
return
|
|
258
|
+
return (
|
|
259
|
+
<Popper
|
|
260
|
+
trigger={inputGroup}
|
|
261
|
+
triggerRef={textInputGroupRef}
|
|
262
|
+
popper={menu}
|
|
263
|
+
popperRef={menuRef}
|
|
264
|
+
isVisible={menuIsOpen}
|
|
265
|
+
onDocumentClick={handleClick}
|
|
266
|
+
/>
|
|
267
|
+
);
|
|
259
268
|
};
|
|
@@ -37,7 +37,7 @@ export const AutoCompleteSearch: React.FunctionComponent = () => {
|
|
|
37
37
|
|
|
38
38
|
/** callback for removing a chip from the chip selections */
|
|
39
39
|
const deleteChip = (chipToDelete: string) => {
|
|
40
|
-
const newChips = currentChips.filter(chip => !Object.is(chip, chipToDelete));
|
|
40
|
+
const newChips = currentChips.filter((chip) => !Object.is(chip, chipToDelete));
|
|
41
41
|
setCurrentChips(newChips);
|
|
42
42
|
};
|
|
43
43
|
|
|
@@ -50,7 +50,7 @@ export const AutoCompleteSearch: React.FunctionComponent = () => {
|
|
|
50
50
|
React.useEffect(() => {
|
|
51
51
|
/** in the menu only show items that include the text in the input */
|
|
52
52
|
const filteredMenuItems = suggestionItems
|
|
53
|
-
.filter(item => !inputValue || item.toLowerCase().includes(inputValue.toString().toLowerCase()))
|
|
53
|
+
.filter((item) => !inputValue || item.toLowerCase().includes(inputValue.toString().toLowerCase()))
|
|
54
54
|
.map((currentValue, index) => (
|
|
55
55
|
<MenuItem key={currentValue} itemId={index}>
|
|
56
56
|
{currentValue}
|
|
@@ -219,7 +219,7 @@ export const AutoCompleteSearch: React.FunctionComponent = () => {
|
|
|
219
219
|
aria-label="Search input"
|
|
220
220
|
>
|
|
221
221
|
<ChipGroup>
|
|
222
|
-
{currentChips.map(currentChip => (
|
|
222
|
+
{currentChips.map((currentChip) => (
|
|
223
223
|
<Chip key={currentChip} onClick={() => deleteChip(currentChip)}>
|
|
224
224
|
{currentChip}
|
|
225
225
|
</Chip>
|
|
@@ -252,7 +252,9 @@ export const AutoCompleteSearch: React.FunctionComponent = () => {
|
|
|
252
252
|
return (
|
|
253
253
|
<Popper
|
|
254
254
|
trigger={inputGroup}
|
|
255
|
+
triggerRef={textInputGroupRef}
|
|
255
256
|
popper={menu}
|
|
257
|
+
popperRef={menuRef}
|
|
256
258
|
appendTo={() => textInputGroupRef.current}
|
|
257
259
|
isVisible={menuIsOpen}
|
|
258
260
|
onDocumentClick={handleClick}
|
|
@@ -46,17 +46,22 @@ export const getOpacityTransition = (animationDuration: number) =>
|
|
|
46
46
|
|
|
47
47
|
export interface PopperProps {
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
50
|
-
* Use either trigger or reference, not both.
|
|
49
|
+
* Trigger reference element to which the popper is relatively placed to.
|
|
51
50
|
*/
|
|
52
51
|
trigger?: React.ReactNode;
|
|
53
52
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
53
|
+
* A reference to the trigger reference element that can be passed instead of or along
|
|
54
|
+
* with the trigger prop. When passed along with the trigger prop, the div element that
|
|
55
|
+
* wraps the trigger will be removed.
|
|
56
56
|
*/
|
|
57
|
-
|
|
57
|
+
triggerRef?: HTMLElement | (() => HTMLElement) | React.RefObject<any>;
|
|
58
58
|
/** The popper (menu/tooltip/popover) element */
|
|
59
59
|
popper: React.ReactElement;
|
|
60
|
+
/**
|
|
61
|
+
* @beta Reference to the popper (menu/tooltip/popover) element.
|
|
62
|
+
* Passing this prop will remove the wrapper div element from the popper.
|
|
63
|
+
*/
|
|
64
|
+
popperRef?: HTMLElement | (() => HTMLElement) | React.RefObject<any>;
|
|
60
65
|
/** True to set the width of the popper element to the trigger element's width */
|
|
61
66
|
popperMatchesTriggerWidth?: boolean;
|
|
62
67
|
/** popper direction */
|
|
@@ -137,8 +142,6 @@ export interface PopperProps {
|
|
|
137
142
|
| 'right-start'
|
|
138
143
|
| 'right-end'
|
|
139
144
|
)[];
|
|
140
|
-
/** @beta Reference to the popper (menu/tooltip/popover) element. */
|
|
141
|
-
popperRef?: HTMLElement | (() => HTMLElement) | React.RefObject<any>;
|
|
142
145
|
}
|
|
143
146
|
|
|
144
147
|
export const Popper: React.FunctionComponent<PopperProps> = ({
|
|
@@ -166,7 +169,7 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
|
|
|
166
169
|
onDocumentKeyDown,
|
|
167
170
|
enableFlip = true,
|
|
168
171
|
flipBehavior = 'flip',
|
|
169
|
-
|
|
172
|
+
triggerRef,
|
|
170
173
|
popperRef
|
|
171
174
|
}) => {
|
|
172
175
|
const [triggerElement, setTriggerElement] = React.useState(null);
|
|
@@ -183,14 +186,14 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
|
|
|
183
186
|
setReady(true);
|
|
184
187
|
}, []);
|
|
185
188
|
React.useEffect(() => {
|
|
186
|
-
if (
|
|
187
|
-
if ((
|
|
188
|
-
setRefElement((
|
|
189
|
-
} else if (typeof
|
|
190
|
-
setRefElement(
|
|
189
|
+
if (triggerRef) {
|
|
190
|
+
if ((triggerRef as React.RefObject<any>).current) {
|
|
191
|
+
setRefElement((triggerRef as React.RefObject<any>).current);
|
|
192
|
+
} else if (typeof triggerRef === 'function') {
|
|
193
|
+
setRefElement(triggerRef());
|
|
191
194
|
}
|
|
192
195
|
}
|
|
193
|
-
}, [
|
|
196
|
+
}, [triggerRef]);
|
|
194
197
|
React.useEffect(() => {
|
|
195
198
|
// When the popperRef is defined or the popper visibility changes, ensure the popper element is up to date
|
|
196
199
|
if (popperRef) {
|
|
@@ -272,11 +275,10 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
|
|
|
272
275
|
return convertedPlacement as Placement;
|
|
273
276
|
};
|
|
274
277
|
const getPlacementMemo = React.useMemo(getPlacement, [direction, position, placement]);
|
|
275
|
-
const getOppositePlacementMemo = React.useMemo(
|
|
276
|
-
|
|
277
|
-
position,
|
|
278
|
-
|
|
279
|
-
]);
|
|
278
|
+
const getOppositePlacementMemo = React.useMemo(
|
|
279
|
+
() => getOppositePlacement(getPlacement()),
|
|
280
|
+
[direction, position, placement]
|
|
281
|
+
);
|
|
280
282
|
const sameWidthMod: Modifier<'sameWidth', {}> = React.useMemo(
|
|
281
283
|
() => ({
|
|
282
284
|
name: 'sameWidth',
|
|
@@ -294,7 +296,12 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
|
|
|
294
296
|
[popperMatchesTriggerWidth]
|
|
295
297
|
);
|
|
296
298
|
|
|
297
|
-
const {
|
|
299
|
+
const {
|
|
300
|
+
styles: popperStyles,
|
|
301
|
+
attributes,
|
|
302
|
+
update,
|
|
303
|
+
forceUpdate
|
|
304
|
+
} = usePopper(refOrTrigger, popperElement, {
|
|
298
305
|
placement: getPlacementMemo,
|
|
299
306
|
modifiers: [
|
|
300
307
|
{
|
|
@@ -352,7 +359,7 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
|
|
|
352
359
|
return popperRef ? (
|
|
353
360
|
localPopper
|
|
354
361
|
) : (
|
|
355
|
-
<div style={{ display: 'contents' }} ref={node => setPopperElement(node?.firstElementChild as HTMLElement)}>
|
|
362
|
+
<div style={{ display: 'contents' }} ref={(node) => setPopperElement(node?.firstElementChild as HTMLElement)}>
|
|
356
363
|
{localPopper}
|
|
357
364
|
</div>
|
|
358
365
|
);
|
|
@@ -369,11 +376,12 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
|
|
|
369
376
|
|
|
370
377
|
return (
|
|
371
378
|
<>
|
|
372
|
-
{!
|
|
373
|
-
<div style={{ display: 'contents' }} ref={node => setTriggerElement(node?.firstElementChild as HTMLElement)}>
|
|
379
|
+
{!triggerRef && trigger && React.isValidElement(trigger) && (
|
|
380
|
+
<div style={{ display: 'contents' }} ref={(node) => setTriggerElement(node?.firstElementChild as HTMLElement)}>
|
|
374
381
|
{trigger}
|
|
375
382
|
</div>
|
|
376
383
|
)}
|
|
384
|
+
{triggerRef && trigger && React.isValidElement(trigger) && trigger}
|
|
377
385
|
{ready && isVisible && getPopper()}
|
|
378
386
|
</>
|
|
379
387
|
);
|
|
@@ -120,7 +120,9 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
120
120
|
<div ref={containerRef} {...ouiaProps}>
|
|
121
121
|
<Popper
|
|
122
122
|
trigger={toggle(toggleRef)}
|
|
123
|
+
triggerRef={toggleRef}
|
|
123
124
|
popper={menu}
|
|
125
|
+
popperRef={menuRef}
|
|
124
126
|
appendTo={containerRef.current || undefined}
|
|
125
127
|
isVisible={isOpen}
|
|
126
128
|
zIndex={zIndex}
|
|
@@ -119,7 +119,9 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
|
|
|
119
119
|
<div ref={containerRef}>
|
|
120
120
|
<Popper
|
|
121
121
|
trigger={toggle(toggleRef)}
|
|
122
|
+
triggerRef={toggleRef}
|
|
122
123
|
popper={menu}
|
|
124
|
+
popperRef={menuRef}
|
|
123
125
|
appendTo={containerRef.current || undefined}
|
|
124
126
|
isVisible={isOpen}
|
|
125
127
|
zIndex={zIndex}
|