@patternfly/react-core 5.0.0-alpha.118 → 5.0.0-alpha.119
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 +6 -0
- package/dist/esm/components/AboutModal/package.json +1 -1
- package/dist/esm/components/Accordion/package.json +1 -1
- package/dist/esm/components/ActionList/package.json +1 -1
- package/dist/esm/components/Alert/package.json +1 -1
- package/dist/esm/components/Avatar/package.json +1 -1
- package/dist/esm/components/BackToTop/package.json +1 -1
- package/dist/esm/components/Backdrop/package.json +1 -1
- package/dist/esm/components/BackgroundImage/package.json +1 -1
- package/dist/esm/components/Badge/package.json +1 -1
- package/dist/esm/components/Banner/package.json +1 -1
- package/dist/esm/components/Brand/package.json +1 -1
- package/dist/esm/components/Breadcrumb/package.json +1 -1
- package/dist/esm/components/Button/package.json +1 -1
- package/dist/esm/components/CalendarMonth/CalendarMonth.js +8 -11
- package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/esm/components/CalendarMonth/package.json +1 -1
- package/dist/esm/components/Card/package.json +1 -1
- package/dist/esm/components/Checkbox/package.json +1 -1
- package/dist/esm/components/Chip/package.json +1 -1
- package/dist/esm/components/ClipboardCopy/package.json +1 -1
- package/dist/esm/components/CodeBlock/package.json +1 -1
- package/dist/esm/components/DataList/package.json +1 -1
- package/dist/esm/components/DatePicker/package.json +1 -1
- package/dist/esm/components/DescriptionList/package.json +1 -1
- package/dist/esm/components/Divider/package.json +1 -1
- package/dist/esm/components/DragDrop/package.json +1 -1
- package/dist/esm/components/Drawer/package.json +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +2 -2
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/Dropdown/DropdownItem.d.ts +1 -1
- package/dist/esm/components/Dropdown/DropdownItem.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/DropdownItem.js +2 -2
- package/dist/esm/components/Dropdown/DropdownItem.js.map +1 -1
- package/dist/esm/components/Dropdown/package.json +1 -1
- package/dist/esm/components/DualListSelector/package.json +1 -1
- package/dist/esm/components/EmptyState/package.json +1 -1
- package/dist/esm/components/ExpandableSection/package.json +1 -1
- package/dist/esm/components/FileUpload/package.json +1 -1
- package/dist/esm/components/Form/package.json +1 -1
- package/dist/esm/components/FormSelect/package.json +1 -1
- package/dist/esm/components/HelperText/package.json +1 -1
- package/dist/esm/components/Hint/package.json +1 -1
- package/dist/esm/components/Icon/package.json +1 -1
- package/dist/esm/components/InputGroup/package.json +1 -1
- package/dist/esm/components/JumpLinks/package.json +1 -1
- package/dist/esm/components/Label/package.json +1 -1
- package/dist/esm/components/List/package.json +1 -1
- package/dist/esm/components/LoginPage/package.json +1 -1
- package/dist/esm/components/Masthead/package.json +1 -1
- package/dist/esm/components/Menu/package.json +1 -1
- package/dist/esm/components/MenuToggle/package.json +1 -1
- package/dist/esm/components/Modal/package.json +1 -1
- package/dist/esm/components/MultipleFileUpload/package.json +1 -1
- package/dist/esm/components/Nav/package.json +1 -1
- package/dist/esm/components/NotificationBadge/package.json +1 -1
- package/dist/esm/components/NotificationDrawer/package.json +1 -1
- package/dist/esm/components/NumberInput/package.json +1 -1
- package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.js +1 -1
- package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
- package/dist/esm/components/OverflowMenu/package.json +1 -1
- package/dist/esm/components/Page/package.json +1 -1
- package/dist/esm/components/Pagination/package.json +1 -1
- package/dist/esm/components/Panel/package.json +1 -1
- package/dist/esm/components/Popover/package.json +1 -1
- package/dist/esm/components/Progress/package.json +1 -1
- package/dist/esm/components/ProgressStepper/package.json +1 -1
- package/dist/esm/components/Radio/package.json +1 -1
- package/dist/esm/components/SearchInput/package.json +1 -1
- package/dist/esm/components/Select/Select.d.ts +2 -2
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +2 -2
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Select/SelectOption.d.ts +1 -1
- package/dist/esm/components/Select/SelectOption.d.ts.map +1 -1
- package/dist/esm/components/Select/SelectOption.js +2 -2
- package/dist/esm/components/Select/SelectOption.js.map +1 -1
- package/dist/esm/components/Select/package.json +1 -1
- package/dist/esm/components/Sidebar/package.json +1 -1
- package/dist/esm/components/SimpleList/package.json +1 -1
- package/dist/esm/components/Skeleton/package.json +1 -1
- package/dist/esm/components/SkipToContent/package.json +1 -1
- package/dist/esm/components/Slider/package.json +1 -1
- package/dist/esm/components/Spinner/package.json +1 -1
- package/dist/esm/components/Switch/package.json +1 -1
- package/dist/esm/components/Tabs/package.json +1 -1
- package/dist/esm/components/Text/package.json +1 -1
- package/dist/esm/components/TextArea/package.json +1 -1
- package/dist/esm/components/TextInput/package.json +1 -1
- package/dist/esm/components/TextInputGroup/package.json +1 -1
- package/dist/esm/components/Tile/package.json +1 -1
- package/dist/esm/components/TimePicker/package.json +1 -1
- package/dist/esm/components/Timestamp/package.json +1 -1
- package/dist/esm/components/Title/package.json +1 -1
- package/dist/esm/components/ToggleGroup/package.json +1 -1
- package/dist/esm/components/Toolbar/package.json +1 -1
- package/dist/esm/components/Tooltip/package.json +1 -1
- package/dist/esm/components/TreeView/package.json +1 -1
- package/dist/esm/components/Truncate/package.json +1 -1
- package/dist/esm/components/Wizard/hooks/package.json +1 -1
- package/dist/esm/components/Wizard/package.json +1 -1
- package/dist/esm/components/package.json +1 -1
- package/dist/esm/deprecated/components/ApplicationLauncher/package.json +1 -1
- package/dist/esm/deprecated/components/ContextSelector/package.json +1 -1
- package/dist/esm/deprecated/components/Dropdown/package.json +1 -1
- package/dist/esm/deprecated/components/OptionsMenu/package.json +1 -1
- package/dist/esm/deprecated/components/PageHeader/package.json +1 -1
- package/dist/esm/deprecated/components/Select/package.json +1 -1
- package/dist/esm/deprecated/components/Wizard/package.json +1 -1
- package/dist/esm/deprecated/components/package.json +1 -1
- package/dist/esm/deprecated/package.json +1 -1
- package/dist/esm/helpers/Popper/thirdparty/popper-core/package.json +1 -1
- package/dist/esm/helpers/package.json +1 -1
- package/dist/esm/layouts/Bullseye/package.json +1 -1
- package/dist/esm/layouts/Flex/package.json +1 -1
- package/dist/esm/layouts/Gallery/package.json +1 -1
- package/dist/esm/layouts/Grid/package.json +1 -1
- package/dist/esm/layouts/Level/package.json +1 -1
- package/dist/esm/layouts/Split/package.json +1 -1
- package/dist/esm/layouts/Stack/package.json +1 -1
- package/dist/esm/layouts/package.json +1 -1
- package/dist/esm/next/components/package.json +1 -1
- package/dist/esm/next/package.json +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/js/components/AboutModal/package.json +1 -1
- package/dist/js/components/Accordion/package.json +1 -1
- package/dist/js/components/ActionList/package.json +1 -1
- package/dist/js/components/Alert/package.json +1 -1
- package/dist/js/components/Avatar/package.json +1 -1
- package/dist/js/components/BackToTop/package.json +1 -1
- package/dist/js/components/Backdrop/package.json +1 -1
- package/dist/js/components/BackgroundImage/package.json +1 -1
- package/dist/js/components/Badge/package.json +1 -1
- package/dist/js/components/Banner/package.json +1 -1
- package/dist/js/components/Brand/package.json +1 -1
- package/dist/js/components/Breadcrumb/package.json +1 -1
- package/dist/js/components/Button/package.json +1 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.js +8 -11
- package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/js/components/CalendarMonth/package.json +1 -1
- package/dist/js/components/Card/package.json +1 -1
- package/dist/js/components/Checkbox/package.json +1 -1
- package/dist/js/components/Chip/package.json +1 -1
- package/dist/js/components/ClipboardCopy/package.json +1 -1
- package/dist/js/components/CodeBlock/package.json +1 -1
- package/dist/js/components/DataList/package.json +1 -1
- package/dist/js/components/DatePicker/package.json +1 -1
- package/dist/js/components/DescriptionList/package.json +1 -1
- package/dist/js/components/Divider/package.json +1 -1
- package/dist/js/components/DragDrop/package.json +1 -1
- package/dist/js/components/Drawer/package.json +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js +2 -2
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/Dropdown/DropdownItem.d.ts +1 -1
- package/dist/js/components/Dropdown/DropdownItem.d.ts.map +1 -1
- package/dist/js/components/Dropdown/DropdownItem.js +2 -2
- package/dist/js/components/Dropdown/DropdownItem.js.map +1 -1
- package/dist/js/components/Dropdown/package.json +1 -1
- package/dist/js/components/DualListSelector/package.json +1 -1
- package/dist/js/components/EmptyState/package.json +1 -1
- package/dist/js/components/ExpandableSection/package.json +1 -1
- package/dist/js/components/FileUpload/package.json +1 -1
- package/dist/js/components/Form/package.json +1 -1
- package/dist/js/components/FormSelect/package.json +1 -1
- package/dist/js/components/HelperText/package.json +1 -1
- package/dist/js/components/Hint/package.json +1 -1
- package/dist/js/components/Icon/package.json +1 -1
- package/dist/js/components/InputGroup/package.json +1 -1
- package/dist/js/components/JumpLinks/package.json +1 -1
- package/dist/js/components/Label/package.json +1 -1
- package/dist/js/components/List/package.json +1 -1
- package/dist/js/components/LoginPage/package.json +1 -1
- package/dist/js/components/Masthead/package.json +1 -1
- package/dist/js/components/Menu/package.json +1 -1
- package/dist/js/components/MenuToggle/package.json +1 -1
- package/dist/js/components/Modal/package.json +1 -1
- package/dist/js/components/MultipleFileUpload/package.json +1 -1
- package/dist/js/components/Nav/package.json +1 -1
- package/dist/js/components/NotificationBadge/package.json +1 -1
- package/dist/js/components/NotificationDrawer/package.json +1 -1
- package/dist/js/components/NumberInput/package.json +1 -1
- package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.js +1 -1
- package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
- package/dist/js/components/OverflowMenu/package.json +1 -1
- package/dist/js/components/Page/package.json +1 -1
- package/dist/js/components/Pagination/package.json +1 -1
- package/dist/js/components/Panel/package.json +1 -1
- package/dist/js/components/Popover/package.json +1 -1
- package/dist/js/components/Progress/package.json +1 -1
- package/dist/js/components/ProgressStepper/package.json +1 -1
- package/dist/js/components/Radio/package.json +1 -1
- package/dist/js/components/SearchInput/package.json +1 -1
- package/dist/js/components/Select/Select.d.ts +2 -2
- package/dist/js/components/Select/Select.d.ts.map +1 -1
- package/dist/js/components/Select/Select.js +2 -2
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/js/components/Select/SelectOption.d.ts +1 -1
- package/dist/js/components/Select/SelectOption.d.ts.map +1 -1
- package/dist/js/components/Select/SelectOption.js +2 -2
- package/dist/js/components/Select/SelectOption.js.map +1 -1
- package/dist/js/components/Select/package.json +1 -1
- package/dist/js/components/Sidebar/package.json +1 -1
- package/dist/js/components/SimpleList/package.json +1 -1
- package/dist/js/components/Skeleton/package.json +1 -1
- package/dist/js/components/SkipToContent/package.json +1 -1
- package/dist/js/components/Slider/package.json +1 -1
- package/dist/js/components/Spinner/package.json +1 -1
- package/dist/js/components/Switch/package.json +1 -1
- package/dist/js/components/Tabs/package.json +1 -1
- package/dist/js/components/Text/package.json +1 -1
- package/dist/js/components/TextArea/package.json +1 -1
- package/dist/js/components/TextInput/package.json +1 -1
- package/dist/js/components/TextInputGroup/package.json +1 -1
- package/dist/js/components/Tile/package.json +1 -1
- package/dist/js/components/TimePicker/package.json +1 -1
- package/dist/js/components/Timestamp/package.json +1 -1
- package/dist/js/components/Title/package.json +1 -1
- package/dist/js/components/ToggleGroup/package.json +1 -1
- package/dist/js/components/Toolbar/package.json +1 -1
- package/dist/js/components/Tooltip/package.json +1 -1
- package/dist/js/components/TreeView/package.json +1 -1
- package/dist/js/components/Truncate/package.json +1 -1
- package/dist/js/components/Wizard/hooks/package.json +1 -1
- package/dist/js/components/Wizard/package.json +1 -1
- package/dist/js/components/package.json +1 -1
- package/dist/js/deprecated/components/ApplicationLauncher/package.json +1 -1
- package/dist/js/deprecated/components/ContextSelector/package.json +1 -1
- package/dist/js/deprecated/components/Dropdown/package.json +1 -1
- package/dist/js/deprecated/components/OptionsMenu/package.json +1 -1
- package/dist/js/deprecated/components/PageHeader/package.json +1 -1
- package/dist/js/deprecated/components/Select/package.json +1 -1
- package/dist/js/deprecated/components/Wizard/package.json +1 -1
- package/dist/js/deprecated/components/package.json +1 -1
- package/dist/js/deprecated/package.json +1 -1
- package/dist/js/helpers/Popper/thirdparty/popper-core/package.json +1 -1
- package/dist/js/helpers/package.json +1 -1
- package/dist/js/layouts/Bullseye/package.json +1 -1
- package/dist/js/layouts/Flex/package.json +1 -1
- package/dist/js/layouts/Gallery/package.json +1 -1
- package/dist/js/layouts/Grid/package.json +1 -1
- package/dist/js/layouts/Level/package.json +1 -1
- package/dist/js/layouts/Split/package.json +1 -1
- package/dist/js/layouts/Stack/package.json +1 -1
- package/dist/js/layouts/package.json +1 -1
- package/dist/js/next/components/package.json +1 -1
- package/dist/js/next/package.json +1 -1
- package/dist/js/package.json +1 -1
- package/dist/umd/react-core.min.js +1 -1
- package/package.json +2 -2
- package/src/components/CalendarMonth/CalendarMonth.tsx +14 -14
- package/src/components/Dropdown/Dropdown.tsx +3 -3
- package/src/components/Dropdown/DropdownItem.tsx +8 -6
- package/src/components/Dropdown/examples/DropdownBasic.tsx +8 -8
- package/src/components/Dropdown/examples/DropdownWithDescriptions.tsx +6 -6
- package/src/components/Dropdown/examples/DropdownWithGroups.tsx +8 -8
- package/src/components/Dropdown/examples/DropdownWithKebabToggle.tsx +8 -8
- package/src/components/Form/examples/FormState.tsx +5 -5
- package/src/components/Hint/examples/HintBasicWithTitle.tsx +6 -6
- package/src/components/Hint/examples/HintBasicWithoutTitle.tsx +6 -6
- package/src/components/InputGroup/examples/InputGroupWithDropdown.tsx +3 -3
- package/src/components/LoginPage/examples/LoginPageLanguageSelect.tsx +7 -7
- package/src/components/Modal/examples/ModalWithDropdown.tsx +4 -4
- package/src/components/OverflowMenu/OverflowMenuDropdownItem.tsx +1 -1
- package/src/components/Select/Select.tsx +4 -4
- package/src/components/Select/SelectOption.tsx +3 -2
- package/src/components/Select/examples/SelectBasic.tsx +6 -6
- package/src/components/Select/examples/SelectCheckbox.tsx +9 -9
- package/src/components/Select/examples/SelectFooter.tsx +6 -6
- package/src/components/Select/examples/SelectGrouped.tsx +9 -9
- package/src/components/Select/examples/SelectMultiTypeahead.tsx +16 -16
- package/src/components/Select/examples/SelectMultiTypeaheadCheckbox.tsx +17 -17
- package/src/components/Select/examples/SelectMultiTypeaheadCreatable.tsx +19 -19
- package/src/components/Select/examples/SelectOptionVariations.tsx +9 -9
- package/src/components/Select/examples/SelectTypeahead.tsx +17 -17
- package/src/components/Select/examples/SelectTypeaheadCreatable.tsx +20 -20
- package/src/components/Select/examples/SelectViewMore.tsx +17 -17
- package/src/components/Toolbar/examples/ToolbarComponentManagedToggleGroups.tsx +8 -4
- package/src/components/Toolbar/examples/ToolbarConsumerManagedToggleGroups.tsx +8 -4
- package/src/components/Toolbar/examples/ToolbarCustomChipGroupContent.tsx +14 -44
- package/src/components/Toolbar/examples/ToolbarGroups.tsx +18 -12
- package/src/components/Toolbar/examples/ToolbarStacked.tsx +6 -6
- package/src/components/Toolbar/examples/ToolbarWithFilters.tsx +7 -7
- package/src/components/Tooltip/examples/TooltipOptions.tsx +35 -22
- package/src/demos/Card/Card.md +52 -16
- package/src/demos/CardDemos.md +15 -15
- package/src/demos/CustomMenus/examples/ActionsMenuDemo.tsx +10 -10
- package/src/demos/CustomMenus/examples/ApplicationLauncherDemo.tsx +17 -17
- package/src/demos/CustomMenus/examples/DateSelectDemo.tsx +6 -6
- package/src/demos/CustomMenus/examples/FavoritesDemo.tsx +16 -16
- package/src/demos/CustomMenus/examples/OptionsMenuDemo.tsx +7 -7
- package/src/demos/DataListDemo.md +12 -12
- package/src/demos/PrimaryDetail.md +15 -8
- package/src/demos/Toolbar.md +1 -1
|
@@ -24,12 +24,12 @@ export const SelectFooter: React.FunctionComponent = () => {
|
|
|
24
24
|
</MenuToggle>
|
|
25
25
|
);
|
|
26
26
|
|
|
27
|
-
function onSelect(event: React.MouseEvent | undefined,
|
|
28
|
-
if (typeof
|
|
27
|
+
function onSelect(event: React.MouseEvent | undefined, value: string | number | undefined) {
|
|
28
|
+
if (typeof value === 'undefined') {
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
setSelected(
|
|
32
|
+
setSelected(value.toString());
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
return (
|
|
@@ -43,9 +43,9 @@ export const SelectFooter: React.FunctionComponent = () => {
|
|
|
43
43
|
selected={selected}
|
|
44
44
|
>
|
|
45
45
|
<SelectList>
|
|
46
|
-
<SelectOption
|
|
47
|
-
<SelectOption
|
|
48
|
-
<SelectOption
|
|
46
|
+
<SelectOption value="Option 1">Option 1</SelectOption>
|
|
47
|
+
<SelectOption value="Option 2">Option 2</SelectOption>
|
|
48
|
+
<SelectOption value="Option 3">Option 3</SelectOption>
|
|
49
49
|
</SelectList>
|
|
50
50
|
<MenuFooter>
|
|
51
51
|
<Button variant="link" isInline>
|
|
@@ -17,11 +17,11 @@ export const SelectGrouped: React.FunctionComponent = () => {
|
|
|
17
17
|
setIsOpen(!isOpen);
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined,
|
|
20
|
+
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
|
|
21
21
|
// eslint-disable-next-line no-console
|
|
22
|
-
console.log('selected',
|
|
22
|
+
console.log('selected', value);
|
|
23
23
|
|
|
24
|
-
setSelected(
|
|
24
|
+
setSelected(value as string);
|
|
25
25
|
setIsOpen(false);
|
|
26
26
|
};
|
|
27
27
|
|
|
@@ -52,17 +52,17 @@ export const SelectGrouped: React.FunctionComponent = () => {
|
|
|
52
52
|
>
|
|
53
53
|
<SelectGroup label="Group 1">
|
|
54
54
|
<SelectList>
|
|
55
|
-
<SelectOption
|
|
56
|
-
<SelectOption
|
|
57
|
-
<SelectOption
|
|
55
|
+
<SelectOption value="Option 1">Option 1</SelectOption>
|
|
56
|
+
<SelectOption value="Option 2">Option 2</SelectOption>
|
|
57
|
+
<SelectOption value="Option 3">Option 3</SelectOption>
|
|
58
58
|
</SelectList>
|
|
59
59
|
</SelectGroup>
|
|
60
60
|
<Divider />
|
|
61
61
|
<SelectGroup label="Group 2">
|
|
62
62
|
<SelectList>
|
|
63
|
-
<SelectOption
|
|
64
|
-
<SelectOption
|
|
65
|
-
<SelectOption
|
|
63
|
+
<SelectOption value="Option 4">Option 4</SelectOption>
|
|
64
|
+
<SelectOption value="Option 5">Option 5</SelectOption>
|
|
65
|
+
<SelectOption value="Option 6">Option 6</SelectOption>
|
|
66
66
|
</SelectList>
|
|
67
67
|
</SelectGroup>
|
|
68
68
|
</Select>
|
|
@@ -16,12 +16,12 @@ import {
|
|
|
16
16
|
import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
|
|
17
17
|
|
|
18
18
|
const initialSelectOptions: SelectOptionProps[] = [
|
|
19
|
-
{
|
|
20
|
-
{
|
|
21
|
-
{
|
|
22
|
-
{
|
|
23
|
-
{
|
|
24
|
-
{
|
|
19
|
+
{ value: 'Alabama', children: 'Alabama' },
|
|
20
|
+
{ value: 'Florida', children: 'Florida' },
|
|
21
|
+
{ value: 'New Jersey', children: 'New Jersey' },
|
|
22
|
+
{ value: 'New Mexico', children: 'New Mexico' },
|
|
23
|
+
{ value: 'New York', children: 'New York' },
|
|
24
|
+
{ value: 'North Carolina', children: 'North Carolina' }
|
|
25
25
|
];
|
|
26
26
|
|
|
27
27
|
export const SelectMultiTypeahead: React.FunctionComponent = () => {
|
|
@@ -45,7 +45,7 @@ export const SelectMultiTypeahead: React.FunctionComponent = () => {
|
|
|
45
45
|
// When no options are found after filtering, display 'No results found'
|
|
46
46
|
if (!newSelectOptions.length) {
|
|
47
47
|
newSelectOptions = [
|
|
48
|
-
{ isDisabled: false, children: `No results found for "${inputValue}"`,
|
|
48
|
+
{ isDisabled: false, children: `No results found for "${inputValue}"`, value: 'no results' }
|
|
49
49
|
];
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -84,7 +84,7 @@ export const SelectMultiTypeahead: React.FunctionComponent = () => {
|
|
|
84
84
|
|
|
85
85
|
setFocusedItemIndex(indexToFocus);
|
|
86
86
|
const focusedItem = selectOptions.filter((option) => !option.isDisabled)[indexToFocus];
|
|
87
|
-
setActiveItem(`select-multi-typeahead-${focusedItem.
|
|
87
|
+
setActiveItem(`select-multi-typeahead-${focusedItem.value.replace(' ', '-')}`);
|
|
88
88
|
}
|
|
89
89
|
};
|
|
90
90
|
|
|
@@ -98,8 +98,8 @@ export const SelectMultiTypeahead: React.FunctionComponent = () => {
|
|
|
98
98
|
case 'Enter':
|
|
99
99
|
if (!isOpen) {
|
|
100
100
|
setIsOpen((prevIsOpen) => !prevIsOpen);
|
|
101
|
-
} else if (isOpen && focusedItem.
|
|
102
|
-
onSelect(focusedItem.
|
|
101
|
+
} else if (isOpen && focusedItem.value !== 'no results') {
|
|
102
|
+
onSelect(focusedItem.value as string);
|
|
103
103
|
}
|
|
104
104
|
break;
|
|
105
105
|
case 'Tab':
|
|
@@ -123,13 +123,13 @@ export const SelectMultiTypeahead: React.FunctionComponent = () => {
|
|
|
123
123
|
setInputValue(value);
|
|
124
124
|
};
|
|
125
125
|
|
|
126
|
-
const onSelect = (
|
|
126
|
+
const onSelect = (value: string) => {
|
|
127
127
|
// eslint-disable-next-line no-console
|
|
128
|
-
console.log('selected',
|
|
128
|
+
console.log('selected', value);
|
|
129
129
|
|
|
130
|
-
if (
|
|
130
|
+
if (value && value !== 'no results') {
|
|
131
131
|
setSelected(
|
|
132
|
-
selected.includes(
|
|
132
|
+
selected.includes(value) ? selected.filter((selection) => selection !== value) : [...selected, value]
|
|
133
133
|
);
|
|
134
134
|
}
|
|
135
135
|
|
|
@@ -198,10 +198,10 @@ export const SelectMultiTypeahead: React.FunctionComponent = () => {
|
|
|
198
198
|
<SelectList isAriaMultiselectable id="select-multi-typeahead-listbox">
|
|
199
199
|
{selectOptions.map((option, index) => (
|
|
200
200
|
<SelectOption
|
|
201
|
-
key={option.
|
|
201
|
+
key={option.value || option.children}
|
|
202
202
|
isFocused={focusedItemIndex === index}
|
|
203
203
|
className={option.className}
|
|
204
|
-
id={`select-multi-typeahead-${option.
|
|
204
|
+
id={`select-multi-typeahead-${option.value.replace(' ', '-')}`}
|
|
205
205
|
{...option}
|
|
206
206
|
ref={null}
|
|
207
207
|
/>
|
|
@@ -14,12 +14,12 @@ import {
|
|
|
14
14
|
import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
|
|
15
15
|
|
|
16
16
|
const initialSelectOptions: SelectOptionProps[] = [
|
|
17
|
-
{
|
|
18
|
-
{
|
|
19
|
-
{
|
|
20
|
-
{
|
|
21
|
-
{
|
|
22
|
-
{
|
|
17
|
+
{ value: 'Alabama', children: 'Alabama' },
|
|
18
|
+
{ value: 'Florida', children: 'Florida' },
|
|
19
|
+
{ value: 'New Jersey', children: 'New Jersey' },
|
|
20
|
+
{ value: 'New Mexico', children: 'New Mexico' },
|
|
21
|
+
{ value: 'New York', children: 'New York' },
|
|
22
|
+
{ value: 'North Carolina', children: 'North Carolina' }
|
|
23
23
|
];
|
|
24
24
|
|
|
25
25
|
export const SelectMultiTypeaheadCheckbox: React.FunctionComponent = () => {
|
|
@@ -44,7 +44,7 @@ export const SelectMultiTypeaheadCheckbox: React.FunctionComponent = () => {
|
|
|
44
44
|
// When no options are found after filtering, display 'No results found'
|
|
45
45
|
if (!newSelectOptions.length) {
|
|
46
46
|
newSelectOptions = [
|
|
47
|
-
{ isDisabled: false, children: `No results found for "${inputValue}"`,
|
|
47
|
+
{ isDisabled: false, children: `No results found for "${inputValue}"`, value: 'no results' }
|
|
48
48
|
];
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -83,7 +83,7 @@ export const SelectMultiTypeaheadCheckbox: React.FunctionComponent = () => {
|
|
|
83
83
|
|
|
84
84
|
setFocusedItemIndex(indexToFocus);
|
|
85
85
|
const focusedItem = selectOptions.filter((option) => !option.isDisabled)[indexToFocus];
|
|
86
|
-
setActiveItem(`select-multi-typeahead-checkbox-${focusedItem.
|
|
86
|
+
setActiveItem(`select-multi-typeahead-checkbox-${focusedItem.value.replace(' ', '-')}`);
|
|
87
87
|
}
|
|
88
88
|
};
|
|
89
89
|
|
|
@@ -97,8 +97,8 @@ export const SelectMultiTypeaheadCheckbox: React.FunctionComponent = () => {
|
|
|
97
97
|
case 'Enter':
|
|
98
98
|
if (!isOpen) {
|
|
99
99
|
setIsOpen((prevIsOpen) => !prevIsOpen);
|
|
100
|
-
} else if (isOpen && focusedItem.
|
|
101
|
-
onSelect(focusedItem.
|
|
100
|
+
} else if (isOpen && focusedItem.value !== 'no results') {
|
|
101
|
+
onSelect(focusedItem.value as string);
|
|
102
102
|
}
|
|
103
103
|
break;
|
|
104
104
|
case 'Tab':
|
|
@@ -122,13 +122,13 @@ export const SelectMultiTypeaheadCheckbox: React.FunctionComponent = () => {
|
|
|
122
122
|
setInputValue(value);
|
|
123
123
|
};
|
|
124
124
|
|
|
125
|
-
const onSelect = (
|
|
125
|
+
const onSelect = (value: string) => {
|
|
126
126
|
// eslint-disable-next-line no-console
|
|
127
|
-
console.log('selected',
|
|
127
|
+
console.log('selected', value);
|
|
128
128
|
|
|
129
|
-
if (
|
|
129
|
+
if (value && value !== 'no results') {
|
|
130
130
|
setSelected(
|
|
131
|
-
selected.includes(
|
|
131
|
+
selected.includes(value) ? selected.filter((selection) => selection !== value) : [...selected, value]
|
|
132
132
|
);
|
|
133
133
|
}
|
|
134
134
|
|
|
@@ -189,11 +189,11 @@ export const SelectMultiTypeaheadCheckbox: React.FunctionComponent = () => {
|
|
|
189
189
|
{selectOptions.map((option, index) => (
|
|
190
190
|
<SelectOption
|
|
191
191
|
{...(!option.isDisabled && { hasCheckbox: true })}
|
|
192
|
-
isSelected={selected.includes(option.
|
|
193
|
-
key={option.
|
|
192
|
+
isSelected={selected.includes(option.value)}
|
|
193
|
+
key={option.value || option.children}
|
|
194
194
|
isFocused={focusedItemIndex === index}
|
|
195
195
|
className={option.className}
|
|
196
|
-
id={`select-multi-typeahead-${option.
|
|
196
|
+
id={`select-multi-typeahead-${option.value.replace(' ', '-')}`}
|
|
197
197
|
{...option}
|
|
198
198
|
ref={null}
|
|
199
199
|
/>
|
|
@@ -16,12 +16,12 @@ import {
|
|
|
16
16
|
import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
|
|
17
17
|
|
|
18
18
|
let initialSelectOptions: SelectOptionProps[] = [
|
|
19
|
-
{
|
|
20
|
-
{
|
|
21
|
-
{
|
|
22
|
-
{
|
|
23
|
-
{
|
|
24
|
-
{
|
|
19
|
+
{ value: 'Alabama', children: 'Alabama' },
|
|
20
|
+
{ value: 'Florida', children: 'Florida' },
|
|
21
|
+
{ value: 'New Jersey', children: 'New Jersey' },
|
|
22
|
+
{ value: 'New Mexico', children: 'New Mexico' },
|
|
23
|
+
{ value: 'New York', children: 'New York' },
|
|
24
|
+
{ value: 'North Carolina', children: 'North Carolina' }
|
|
25
25
|
];
|
|
26
26
|
|
|
27
27
|
export const SelectMultiTypeaheadCreatable: React.FunctionComponent = () => {
|
|
@@ -45,7 +45,7 @@ export const SelectMultiTypeaheadCreatable: React.FunctionComponent = () => {
|
|
|
45
45
|
|
|
46
46
|
// When no options are found after filtering, display creation option
|
|
47
47
|
if (!newSelectOptions.length) {
|
|
48
|
-
newSelectOptions = [{ isDisabled: false, children: `Create new option "${inputValue}"`,
|
|
48
|
+
newSelectOptions = [{ isDisabled: false, children: `Create new option "${inputValue}"`, value: 'create' }];
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
// Open the menu when the input value changes and the new value is not empty
|
|
@@ -83,7 +83,7 @@ export const SelectMultiTypeaheadCreatable: React.FunctionComponent = () => {
|
|
|
83
83
|
|
|
84
84
|
setFocusedItemIndex(indexToFocus);
|
|
85
85
|
const focusedItem = selectOptions.filter((option) => !option.isDisabled)[indexToFocus];
|
|
86
|
-
setActiveItem(`select-multi-create-typeahead-${focusedItem.
|
|
86
|
+
setActiveItem(`select-multi-create-typeahead-${focusedItem.value.replace(' ', '-')}`);
|
|
87
87
|
}
|
|
88
88
|
};
|
|
89
89
|
|
|
@@ -97,8 +97,8 @@ export const SelectMultiTypeaheadCreatable: React.FunctionComponent = () => {
|
|
|
97
97
|
case 'Enter':
|
|
98
98
|
if (!isOpen) {
|
|
99
99
|
setIsOpen((prevIsOpen) => !prevIsOpen);
|
|
100
|
-
} else if (isOpen && focusedItem.
|
|
101
|
-
onSelect(focusedItem.
|
|
100
|
+
} else if (isOpen && focusedItem.value !== 'no results') {
|
|
101
|
+
onSelect(focusedItem.value as string);
|
|
102
102
|
}
|
|
103
103
|
break;
|
|
104
104
|
case 'Tab':
|
|
@@ -122,11 +122,11 @@ export const SelectMultiTypeaheadCreatable: React.FunctionComponent = () => {
|
|
|
122
122
|
setInputValue(value);
|
|
123
123
|
};
|
|
124
124
|
|
|
125
|
-
const onSelect = (
|
|
126
|
-
if (
|
|
127
|
-
if (
|
|
128
|
-
if (!initialSelectOptions.some((item) => item.
|
|
129
|
-
initialSelectOptions = [...initialSelectOptions, {
|
|
125
|
+
const onSelect = (value: string) => {
|
|
126
|
+
if (value) {
|
|
127
|
+
if (value === 'create') {
|
|
128
|
+
if (!initialSelectOptions.some((item) => item.value === inputValue)) {
|
|
129
|
+
initialSelectOptions = [...initialSelectOptions, { value: inputValue, children: inputValue }];
|
|
130
130
|
}
|
|
131
131
|
setSelected(
|
|
132
132
|
selected.includes(inputValue)
|
|
@@ -136,9 +136,9 @@ export const SelectMultiTypeaheadCreatable: React.FunctionComponent = () => {
|
|
|
136
136
|
setOnCreation(!onCreation);
|
|
137
137
|
} else {
|
|
138
138
|
// eslint-disable-next-line no-console
|
|
139
|
-
console.log('selected',
|
|
139
|
+
console.log('selected', value);
|
|
140
140
|
setSelected(
|
|
141
|
-
selected.includes(
|
|
141
|
+
selected.includes(value) ? selected.filter((selection) => selection !== value) : [...selected, value]
|
|
142
142
|
);
|
|
143
143
|
}
|
|
144
144
|
}
|
|
@@ -208,10 +208,10 @@ export const SelectMultiTypeaheadCreatable: React.FunctionComponent = () => {
|
|
|
208
208
|
<SelectList isAriaMultiselectable id="select-multi-create-typeahead-listbox">
|
|
209
209
|
{selectOptions.map((option, index) => (
|
|
210
210
|
<SelectOption
|
|
211
|
-
key={option.
|
|
211
|
+
key={option.value || option.children}
|
|
212
212
|
isFocused={focusedItemIndex === index}
|
|
213
213
|
className={option.className}
|
|
214
|
-
id={`select-multi-create-typeahead-${option.
|
|
214
|
+
id={`select-multi-create-typeahead-${option.value.replace(' ', '-')}`}
|
|
215
215
|
{...option}
|
|
216
216
|
ref={null}
|
|
217
217
|
/>
|
|
@@ -10,11 +10,11 @@ export const SelectOptionVariations: React.FunctionComponent = () => {
|
|
|
10
10
|
setIsOpen(!isOpen);
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined,
|
|
13
|
+
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
|
|
14
14
|
// eslint-disable-next-line no-console
|
|
15
|
-
console.log('selected',
|
|
15
|
+
console.log('selected', value);
|
|
16
16
|
|
|
17
|
-
setSelected(
|
|
17
|
+
setSelected(value as string);
|
|
18
18
|
setIsOpen(false);
|
|
19
19
|
};
|
|
20
20
|
|
|
@@ -44,26 +44,26 @@ export const SelectOptionVariations: React.FunctionComponent = () => {
|
|
|
44
44
|
shouldFocusToggleOnSelect
|
|
45
45
|
>
|
|
46
46
|
<SelectList>
|
|
47
|
-
<SelectOption
|
|
48
|
-
<SelectOption
|
|
47
|
+
<SelectOption value="Basic option">Basic option</SelectOption>
|
|
48
|
+
<SelectOption value="Option with description" description="This is a description">
|
|
49
49
|
Option with description
|
|
50
50
|
</SelectOption>
|
|
51
51
|
<SelectOption
|
|
52
52
|
to="#"
|
|
53
53
|
// Prevent default clicking functionality for example purposes only
|
|
54
54
|
onClick={(event) => event.preventDefault()}
|
|
55
|
-
|
|
55
|
+
value="Option with link"
|
|
56
56
|
isExternalLink
|
|
57
57
|
>
|
|
58
58
|
Option with link
|
|
59
59
|
</SelectOption>
|
|
60
|
-
<SelectOption
|
|
60
|
+
<SelectOption value="Option with icon" icon={<BellIcon />}>
|
|
61
61
|
Option with icon
|
|
62
62
|
</SelectOption>
|
|
63
|
-
<SelectOption
|
|
63
|
+
<SelectOption value="Disabled option" isDisabled>
|
|
64
64
|
Disabled option
|
|
65
65
|
</SelectOption>
|
|
66
|
-
<SelectOption
|
|
66
|
+
<SelectOption value="See Menu for additional variations!">See Menu for additional variations!</SelectOption>
|
|
67
67
|
</SelectList>
|
|
68
68
|
</Select>
|
|
69
69
|
);
|
|
@@ -14,12 +14,12 @@ import {
|
|
|
14
14
|
import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
|
|
15
15
|
|
|
16
16
|
const initialSelectOptions: SelectOptionProps[] = [
|
|
17
|
-
{
|
|
18
|
-
{
|
|
19
|
-
{
|
|
20
|
-
{
|
|
21
|
-
{
|
|
22
|
-
{
|
|
17
|
+
{ value: 'Alabama', children: 'Alabama' },
|
|
18
|
+
{ value: 'Florida', children: 'Florida' },
|
|
19
|
+
{ value: 'New Jersey', children: 'New Jersey' },
|
|
20
|
+
{ value: 'New Mexico', children: 'New Mexico' },
|
|
21
|
+
{ value: 'New York', children: 'New York' },
|
|
22
|
+
{ value: 'North Carolina', children: 'North Carolina' }
|
|
23
23
|
];
|
|
24
24
|
|
|
25
25
|
export const SelectBasic: React.FunctionComponent = () => {
|
|
@@ -44,7 +44,7 @@ export const SelectBasic: React.FunctionComponent = () => {
|
|
|
44
44
|
// When no options are found after filtering, display 'No results found'
|
|
45
45
|
if (!newSelectOptions.length) {
|
|
46
46
|
newSelectOptions = [
|
|
47
|
-
{ isDisabled: false, children: `No results found for "${filterValue}"`,
|
|
47
|
+
{ isDisabled: false, children: `No results found for "${filterValue}"`, value: 'no results' }
|
|
48
48
|
];
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -63,14 +63,14 @@ export const SelectBasic: React.FunctionComponent = () => {
|
|
|
63
63
|
setIsOpen(!isOpen);
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined,
|
|
66
|
+
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
|
|
67
67
|
// eslint-disable-next-line no-console
|
|
68
|
-
console.log('selected',
|
|
68
|
+
console.log('selected', value);
|
|
69
69
|
|
|
70
|
-
if (
|
|
71
|
-
setInputValue(
|
|
70
|
+
if (value && value !== 'no results') {
|
|
71
|
+
setInputValue(value as string);
|
|
72
72
|
setFilterValue('');
|
|
73
|
-
setSelected(
|
|
73
|
+
setSelected(value as string);
|
|
74
74
|
}
|
|
75
75
|
setIsOpen(false);
|
|
76
76
|
setFocusedItemIndex(null);
|
|
@@ -106,7 +106,7 @@ export const SelectBasic: React.FunctionComponent = () => {
|
|
|
106
106
|
|
|
107
107
|
setFocusedItemIndex(indexToFocus);
|
|
108
108
|
const focusedItem = selectOptions.filter((option) => !option.isDisabled)[indexToFocus];
|
|
109
|
-
setActiveItem(`select-typeahead-${focusedItem.
|
|
109
|
+
setActiveItem(`select-typeahead-${focusedItem.value.replace(' ', '-')}`);
|
|
110
110
|
}
|
|
111
111
|
};
|
|
112
112
|
|
|
@@ -118,7 +118,7 @@ export const SelectBasic: React.FunctionComponent = () => {
|
|
|
118
118
|
switch (event.key) {
|
|
119
119
|
// Select the first available option
|
|
120
120
|
case 'Enter':
|
|
121
|
-
if (isOpen && focusedItem.
|
|
121
|
+
if (isOpen && focusedItem.value !== 'no results') {
|
|
122
122
|
setInputValue(String(focusedItem.children));
|
|
123
123
|
setFilterValue('');
|
|
124
124
|
setSelected(String(focusedItem.children));
|
|
@@ -194,11 +194,11 @@ export const SelectBasic: React.FunctionComponent = () => {
|
|
|
194
194
|
<SelectList id="select-typeahead-listbox">
|
|
195
195
|
{selectOptions.map((option, index) => (
|
|
196
196
|
<SelectOption
|
|
197
|
-
key={option.
|
|
197
|
+
key={option.value || option.children}
|
|
198
198
|
isFocused={focusedItemIndex === index}
|
|
199
199
|
className={option.className}
|
|
200
|
-
onClick={() => setSelected(option.
|
|
201
|
-
id={`select-typeahead-${option.
|
|
200
|
+
onClick={() => setSelected(option.value)}
|
|
201
|
+
id={`select-typeahead-${option.value.replace(' ', '-')}`}
|
|
202
202
|
{...option}
|
|
203
203
|
ref={null}
|
|
204
204
|
/>
|
|
@@ -14,12 +14,12 @@ import {
|
|
|
14
14
|
import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
|
|
15
15
|
|
|
16
16
|
let initialSelectOptions: SelectOptionProps[] = [
|
|
17
|
-
{
|
|
18
|
-
{
|
|
19
|
-
{
|
|
20
|
-
{
|
|
21
|
-
{
|
|
22
|
-
{
|
|
17
|
+
{ value: 'Alabama', children: 'Alabama' },
|
|
18
|
+
{ value: 'Florida', children: 'Florida' },
|
|
19
|
+
{ value: 'New Jersey', children: 'New Jersey' },
|
|
20
|
+
{ value: 'New Mexico', children: 'New Mexico' },
|
|
21
|
+
{ value: 'New York', children: 'New York' },
|
|
22
|
+
{ value: 'North Carolina', children: 'North Carolina' }
|
|
23
23
|
];
|
|
24
24
|
|
|
25
25
|
export const SelectTypeaheadCreatable: React.FunctionComponent = () => {
|
|
@@ -44,7 +44,7 @@ export const SelectTypeaheadCreatable: React.FunctionComponent = () => {
|
|
|
44
44
|
|
|
45
45
|
// When no options are found after filtering, display creation option
|
|
46
46
|
if (!newSelectOptions.length) {
|
|
47
|
-
newSelectOptions = [{ isDisabled: false, children: `Create new option "${filterValue}"`,
|
|
47
|
+
newSelectOptions = [{ isDisabled: false, children: `Create new option "${filterValue}"`, value: 'create' }];
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
// Open the menu when the input value changes and the new value is not empty
|
|
@@ -62,23 +62,23 @@ export const SelectTypeaheadCreatable: React.FunctionComponent = () => {
|
|
|
62
62
|
setIsOpen(!isOpen);
|
|
63
63
|
};
|
|
64
64
|
|
|
65
|
-
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined,
|
|
65
|
+
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
|
|
66
66
|
// eslint-disable-next-line no-console
|
|
67
67
|
|
|
68
|
-
if (
|
|
69
|
-
if (
|
|
70
|
-
if (!initialSelectOptions.some((item) => item.
|
|
71
|
-
initialSelectOptions = [...initialSelectOptions, {
|
|
68
|
+
if (value) {
|
|
69
|
+
if (value === 'create') {
|
|
70
|
+
if (!initialSelectOptions.some((item) => item.value === filterValue)) {
|
|
71
|
+
initialSelectOptions = [...initialSelectOptions, { value: filterValue, children: filterValue }];
|
|
72
72
|
}
|
|
73
73
|
setSelected(filterValue);
|
|
74
74
|
setOnCreation(!onCreation);
|
|
75
75
|
setFilterValue('');
|
|
76
76
|
} else {
|
|
77
77
|
// eslint-disable-next-line no-console
|
|
78
|
-
console.log('selected',
|
|
79
|
-
setInputValue(
|
|
78
|
+
console.log('selected', value);
|
|
79
|
+
setInputValue(value as string);
|
|
80
80
|
setFilterValue('');
|
|
81
|
-
setSelected(
|
|
81
|
+
setSelected(value as string);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
|
|
@@ -116,7 +116,7 @@ export const SelectTypeaheadCreatable: React.FunctionComponent = () => {
|
|
|
116
116
|
|
|
117
117
|
setFocusedItemIndex(indexToFocus);
|
|
118
118
|
const focusedItem = selectOptions.filter((option) => !option.isDisabled)[indexToFocus];
|
|
119
|
-
setActiveItem(`select-create-typeahead-${focusedItem.
|
|
119
|
+
setActiveItem(`select-create-typeahead-${focusedItem.value.replace(' ', '-')}`);
|
|
120
120
|
}
|
|
121
121
|
};
|
|
122
122
|
|
|
@@ -129,7 +129,7 @@ export const SelectTypeaheadCreatable: React.FunctionComponent = () => {
|
|
|
129
129
|
// Select the first available option
|
|
130
130
|
case 'Enter':
|
|
131
131
|
if (isOpen) {
|
|
132
|
-
onSelect(undefined, focusedItem.
|
|
132
|
+
onSelect(undefined, focusedItem.value as string);
|
|
133
133
|
setIsOpen((prevIsOpen) => !prevIsOpen);
|
|
134
134
|
setFocusedItemIndex(null);
|
|
135
135
|
setActiveItem(null);
|
|
@@ -205,11 +205,11 @@ export const SelectTypeaheadCreatable: React.FunctionComponent = () => {
|
|
|
205
205
|
<SelectList id="select-create-typeahead-listbox">
|
|
206
206
|
{selectOptions.map((option, index) => (
|
|
207
207
|
<SelectOption
|
|
208
|
-
key={option.
|
|
208
|
+
key={option.value || option.children}
|
|
209
209
|
isFocused={focusedItemIndex === index}
|
|
210
210
|
className={option.className}
|
|
211
|
-
onClick={() => setSelected(option.
|
|
212
|
-
id={`select-typeahead-${option.
|
|
211
|
+
onClick={() => setSelected(option.value)}
|
|
212
|
+
id={`select-typeahead-${option.value.replace(' ', '-')}`}
|
|
213
213
|
{...option}
|
|
214
214
|
ref={null}
|
|
215
215
|
/>
|
|
@@ -8,34 +8,34 @@ export const SelectViewMore: React.FunctionComponent = () => {
|
|
|
8
8
|
const [isLoading, setIsLoading] = React.useState(false);
|
|
9
9
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
10
10
|
const [selectOptions, setSelectOptions] = React.useState([
|
|
11
|
-
<SelectOption key={0}
|
|
11
|
+
<SelectOption key={0} value="Option 1">
|
|
12
12
|
Option 1
|
|
13
13
|
</SelectOption>,
|
|
14
|
-
<SelectOption key={1}
|
|
14
|
+
<SelectOption key={1} value="Option 2">
|
|
15
15
|
Option 2
|
|
16
16
|
</SelectOption>,
|
|
17
|
-
<SelectOption key={2}
|
|
17
|
+
<SelectOption key={2} value="Option 3">
|
|
18
18
|
Option 3
|
|
19
19
|
</SelectOption>,
|
|
20
|
-
<SelectOption key={3}
|
|
20
|
+
<SelectOption key={3} value="Option 4">
|
|
21
21
|
Option 4
|
|
22
22
|
</SelectOption>,
|
|
23
|
-
<SelectOption key={4}
|
|
23
|
+
<SelectOption key={4} value="Option 5">
|
|
24
24
|
Option 5
|
|
25
25
|
</SelectOption>,
|
|
26
|
-
<SelectOption key={5}
|
|
26
|
+
<SelectOption key={5} value="Option 6">
|
|
27
27
|
Option 6
|
|
28
28
|
</SelectOption>,
|
|
29
|
-
<SelectOption key={6}
|
|
29
|
+
<SelectOption key={6} value="Option 7">
|
|
30
30
|
Option 7
|
|
31
31
|
</SelectOption>,
|
|
32
|
-
<SelectOption key={7}
|
|
32
|
+
<SelectOption key={7} value="Option 8">
|
|
33
33
|
Option 8
|
|
34
34
|
</SelectOption>,
|
|
35
|
-
<SelectOption key={8}
|
|
35
|
+
<SelectOption key={8} value="Option 9">
|
|
36
36
|
Option 9
|
|
37
37
|
</SelectOption>,
|
|
38
|
-
<SelectOption key={9}
|
|
38
|
+
<SelectOption key={9} value="Final Option 10">
|
|
39
39
|
Final Option 10
|
|
40
40
|
</SelectOption>
|
|
41
41
|
]);
|
|
@@ -73,7 +73,7 @@ export const SelectViewMore: React.FunctionComponent = () => {
|
|
|
73
73
|
|
|
74
74
|
setNumOptions(newLength);
|
|
75
75
|
setIsLoading(false);
|
|
76
|
-
setActiveItem(nextValidItem.props.
|
|
76
|
+
setActiveItem(nextValidItem.props.value);
|
|
77
77
|
setVisibleOptions(selectOptions.slice(0, newLength));
|
|
78
78
|
};
|
|
79
79
|
|
|
@@ -88,12 +88,12 @@ export const SelectViewMore: React.FunctionComponent = () => {
|
|
|
88
88
|
setIsOpen(!isOpen);
|
|
89
89
|
};
|
|
90
90
|
|
|
91
|
-
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined,
|
|
91
|
+
const onSelect = (_event: React.MouseEvent<Element, MouseEvent> | undefined, value: string | number | undefined) => {
|
|
92
92
|
// eslint-disable-next-line no-console
|
|
93
|
-
console.log('selected',
|
|
93
|
+
console.log('selected', value);
|
|
94
94
|
|
|
95
|
-
if (
|
|
96
|
-
setSelected(
|
|
95
|
+
if (value !== 'loader') {
|
|
96
|
+
setSelected(value as string);
|
|
97
97
|
setIsOpen(false);
|
|
98
98
|
toggleRef?.current?.focus(); // Only focus the toggle when a non-loader option is selected
|
|
99
99
|
}
|
|
@@ -127,14 +127,14 @@ export const SelectViewMore: React.FunctionComponent = () => {
|
|
|
127
127
|
{visibleOptions.map((option) => {
|
|
128
128
|
const props = option.props;
|
|
129
129
|
|
|
130
|
-
return <SelectOption key={option.key} ref={props.
|
|
130
|
+
return <SelectOption key={option.key} ref={props.value === activeItem ? activeItemRef : null} {...props} />;
|
|
131
131
|
})}
|
|
132
132
|
{numOptions !== selectOptions.length && (
|
|
133
133
|
<SelectOption
|
|
134
134
|
{...(!isLoading && { isLoadButton: true })}
|
|
135
135
|
{...(isLoading && { isLoading: true })}
|
|
136
136
|
onClick={onViewMoreClick}
|
|
137
|
-
|
|
137
|
+
value="loader"
|
|
138
138
|
ref={viewMoreRef}
|
|
139
139
|
>
|
|
140
140
|
{isLoading ? <Spinner size="lg" /> : 'View more'}
|