@onewelcome/react-lib-components 9.4.0 → 9.5.1
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/dist/cjs/Breadcrumbs/Breadcrumbs.module.scss.cjs.js +1 -1
- package/dist/cjs/Button/BaseButton.module.scss.cjs.js +1 -1
- package/dist/cjs/Button/Button.module.scss.cjs.js +1 -1
- package/dist/cjs/Button/IconButton.module.scss.cjs.js +1 -1
- package/dist/cjs/ContextMenu/ContextMenu.module.scss.cjs.js +1 -1
- package/dist/cjs/ContextMenu/ContextMenuItem.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGrid.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridActions/DataGridActions.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridActions/DataGridColumnsToggle.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridBody/DataGridBody.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridBody/DataGridCell/DataGridCell.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridBody/DataGridRow/DataGridRow.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridFilters/DataGridFilter.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridHeader/DataGridHeader.module.scss.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridHeader/DataGridHeaderCell.module.scss.cjs.js +1 -1
- package/dist/cjs/DatePicker/DatePicker.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Checkbox/Checkbox.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Fieldset/Fieldset.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/FileUpload/FileItem/FileItem.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/FileUpload/FileUpload.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Form.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/FormControl/FormControl.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/FormErrorText/FormErrorText.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/FormGroup/FormGroup.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/FormHelperText/FormHelperText.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Input/Input.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Label/Label.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Radio/Radio.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Select/MultiSelect/MultiSelect.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Select/MultiSelect/SelectButton.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Select/MultiSelect/SelectedOptions.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Select/SingleSelect/Select.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Select/useAddNewBtn.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Textarea/Textarea.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Toggle/Toggle.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.module.scss.cjs.js +1 -1
- package/dist/cjs/Icon/Icon.module.scss.cjs.js +1 -1
- package/dist/cjs/Layout/ContentHeader/ContentHeader.module.scss.cjs.js +1 -1
- package/dist/cjs/Layout/FormPage/FormWithStepper/FormSection/FormSection.module.scss.cjs.js +1 -1
- package/dist/cjs/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.module.scss.cjs.js +1 -1
- package/dist/cjs/Layout/FormPage/FormWithStepper/FormWithStepper.module.scss.cjs.js +1 -1
- package/dist/cjs/Link/Link.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/Alert/AlertContainer/AlertContainer.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/Alert/AlertItem/AlertItem.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/Banner/Banner.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/BaseModal/BaseModal.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/BaseModal/BaseModalActions/BaseModalActions.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/BaseModal/BaseModalContent/BaseModalContent.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/Dialog/Dialog.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/Dialog/DialogActions/DialogActions.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/Dialog/DialogTitle/DialogTitle.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/SideSheet/SideSheet.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/SideSheet/SideSheetContent/SideSheetContent.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.module.scss.cjs.js +1 -1
- package/dist/cjs/Notifications/SlideInModal/SlideInModal.module.scss.cjs.js +1 -1
- package/dist/cjs/Pagination/Pagination.module.scss.cjs.js +1 -1
- package/dist/cjs/Popover/Popover.module.scss.cjs.js +1 -1
- package/dist/cjs/ProgressBar/ProgressBar.module.scss.cjs.js +1 -1
- package/dist/cjs/Skeleton/Skeleton.module.scss.cjs.js +1 -1
- package/dist/cjs/Spinner/Spinner.module.scss.cjs.js +1 -1
- package/dist/cjs/Stepper/Step.module.scss.cjs.js +1 -1
- package/dist/cjs/Stepper/Stepper.module.scss.cjs.js +1 -1
- package/dist/cjs/Tabs/Tab.module.scss.cjs.js +1 -1
- package/dist/cjs/Tabs/TabButton.module.scss.cjs.js +1 -1
- package/dist/cjs/Tabs/Tabs.module.scss.cjs.js +1 -1
- package/dist/cjs/Tag/RemoveButton.module.scss.cjs.js +1 -1
- package/dist/cjs/Tag/Tag.module.scss.cjs.js +1 -1
- package/dist/cjs/TextEllipsis/TextEllipsis.module.scss.cjs.js +1 -1
- package/dist/cjs/Tiles/Tile.module.scss.cjs.js +1 -1
- package/dist/cjs/Tiles/Tiles.module.scss.cjs.js +1 -1
- package/dist/cjs/Tooltip/Tooltip.module.scss.cjs.js +1 -1
- package/dist/cjs/Typography/Typography.module.scss.cjs.js +1 -1
- package/dist/cjs/admin/layout/LeftNav/LeftNav.cjs.js +1 -1
- package/dist/cjs/admin/layout/LeftNav/LeftNav.cjs.js.map +1 -1
- package/dist/cjs/admin/layout/LeftNav/LeftNav.module.scss.cjs.js +1 -1
- package/dist/cjs/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.cjs.js +1 -1
- package/dist/cjs/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.cjs.js.map +1 -1
- package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.cjs.js +1 -1
- package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.cjs.js +1 -1
- package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.cjs.js.map +1 -1
- package/dist/cjs/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.cjs.js +1 -1
- package/dist/cjs/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/cjs/admin/layout/MicrofrontendContainer/MicrofrontendContainer.module.scss.cjs.js +1 -1
- package/dist/cjs/miscellaneous/IdentityProviderButton.module.scss.cjs.js +1 -1
- package/dist/cjs/src/components/admin/layout/LeftNav/LeftNav.d.ts +1 -0
- package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.d.ts +1 -0
- package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.interface.d.ts +1 -0
- package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.d.ts +1 -0
- package/dist/cjs/src/components/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.d.ts +2 -1
- package/dist/cjs/src/readyclasses.module.scss.cjs.js +1 -1
- package/dist/esm/Breadcrumbs/Breadcrumbs.module.scss.esm.js +2 -2
- package/dist/esm/Button/BaseButton.module.scss.esm.js +2 -2
- package/dist/esm/Button/Button.module.scss.esm.js +2 -2
- package/dist/esm/Button/IconButton.module.scss.esm.js +2 -2
- package/dist/esm/ContextMenu/ContextMenu.module.scss.esm.js +2 -2
- package/dist/esm/ContextMenu/ContextMenuItem.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGrid.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridActions/DataGridActions.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridActions/DataGridColumnsToggle.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridBody/DataGridBody.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridBody/DataGridCell/DataGridCell.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridBody/DataGridRow/DataGridRow.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridFilters/DataGridFilter.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridHeader/DataGridHeader.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridHeader/DataGridHeaderCell.module.scss.esm.js +2 -2
- package/dist/esm/DatePicker/DatePicker.module.scss.esm.js +2 -2
- package/dist/esm/Form/Checkbox/Checkbox.module.scss.esm.js +2 -2
- package/dist/esm/Form/Fieldset/Fieldset.module.scss.esm.js +2 -2
- package/dist/esm/Form/FileUpload/FileItem/FileItem.module.scss.esm.js +2 -2
- package/dist/esm/Form/FileUpload/FileUpload.module.scss.esm.js +2 -2
- package/dist/esm/Form/Form.module.scss.esm.js +2 -2
- package/dist/esm/Form/FormControl/FormControl.module.scss.esm.js +2 -2
- package/dist/esm/Form/FormErrorText/FormErrorText.module.scss.esm.js +2 -2
- package/dist/esm/Form/FormGroup/FormGroup.module.scss.esm.js +2 -2
- package/dist/esm/Form/FormHelperText/FormHelperText.module.scss.esm.js +2 -2
- package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss.esm.js +2 -2
- package/dist/esm/Form/Input/Input.module.scss.esm.js +2 -2
- package/dist/esm/Form/Label/Label.module.scss.esm.js +2 -2
- package/dist/esm/Form/Radio/Radio.module.scss.esm.js +2 -2
- package/dist/esm/Form/Select/MultiSelect/MultiSelect.module.scss.esm.js +2 -2
- package/dist/esm/Form/Select/MultiSelect/SelectButton.module.scss.esm.js +2 -2
- package/dist/esm/Form/Select/MultiSelect/SelectedOptions.module.scss.esm.js +2 -2
- package/dist/esm/Form/Select/SingleSelect/Select.module.scss.esm.js +2 -2
- package/dist/esm/Form/Select/useAddNewBtn.module.scss.esm.js +2 -2
- package/dist/esm/Form/Textarea/Textarea.module.scss.esm.js +2 -2
- package/dist/esm/Form/Toggle/Toggle.module.scss.esm.js +2 -2
- package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss.esm.js +2 -2
- package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.module.scss.esm.js +2 -2
- package/dist/esm/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.module.scss.esm.js +2 -2
- package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss.esm.js +2 -2
- package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss.esm.js +2 -2
- package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.esm.js +2 -2
- package/dist/esm/Form/Wrapper/Wrapper/Wrapper.module.scss.esm.js +2 -2
- package/dist/esm/Icon/Icon.module.scss.esm.js +2 -2
- package/dist/esm/Layout/ContentHeader/ContentHeader.module.scss.esm.js +2 -2
- package/dist/esm/Layout/FormPage/FormWithStepper/FormSection/FormSection.module.scss.esm.js +2 -2
- package/dist/esm/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.module.scss.esm.js +2 -2
- package/dist/esm/Layout/FormPage/FormWithStepper/FormWithStepper.module.scss.esm.js +2 -2
- package/dist/esm/Link/Link.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/Alert/AlertContainer/AlertContainer.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/Alert/AlertItem/AlertItem.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/Banner/Banner.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/BaseModal/BaseModal.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/BaseModal/BaseModalActions/BaseModalActions.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/BaseModal/BaseModalContent/BaseModalContent.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/Dialog/Dialog.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/Dialog/DialogActions/DialogActions.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/Dialog/DialogTitle/DialogTitle.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/SideSheet/SideSheet.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/SideSheet/SideSheetContent/SideSheetContent.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.module.scss.esm.js +2 -2
- package/dist/esm/Notifications/SlideInModal/SlideInModal.module.scss.esm.js +2 -2
- package/dist/esm/Pagination/Pagination.module.scss.esm.js +2 -2
- package/dist/esm/Popover/Popover.module.scss.esm.js +2 -2
- package/dist/esm/ProgressBar/ProgressBar.module.scss.esm.js +2 -2
- package/dist/esm/Skeleton/Skeleton.module.scss.esm.js +2 -2
- package/dist/esm/Spinner/Spinner.module.scss.esm.js +2 -2
- package/dist/esm/Stepper/Step.module.scss.esm.js +2 -2
- package/dist/esm/Stepper/Stepper.module.scss.esm.js +2 -2
- package/dist/esm/Tabs/Tab.module.scss.esm.js +2 -2
- package/dist/esm/Tabs/TabButton.module.scss.esm.js +2 -2
- package/dist/esm/Tabs/Tabs.module.scss.esm.js +2 -2
- package/dist/esm/Tag/RemoveButton.module.scss.esm.js +2 -2
- package/dist/esm/Tag/Tag.module.scss.esm.js +2 -2
- package/dist/esm/TextEllipsis/TextEllipsis.module.scss.esm.js +2 -2
- package/dist/esm/Tiles/Tile.module.scss.esm.js +2 -2
- package/dist/esm/Tiles/Tiles.module.scss.esm.js +2 -2
- package/dist/esm/Tooltip/Tooltip.module.scss.esm.js +2 -2
- package/dist/esm/Typography/Typography.module.scss.esm.js +2 -2
- package/dist/esm/admin/layout/LeftNav/LeftNav.esm.js +2 -2
- package/dist/esm/admin/layout/LeftNav/LeftNav.esm.js.map +1 -1
- package/dist/esm/admin/layout/LeftNav/LeftNav.module.scss.esm.js +2 -2
- package/dist/esm/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.esm.js +12 -7
- package/dist/esm/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.esm.js.map +1 -1
- package/dist/esm/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.esm.js +2 -2
- package/dist/esm/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.esm.js +3 -3
- package/dist/esm/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.esm.js.map +1 -1
- package/dist/esm/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.esm.js +9 -4
- package/dist/esm/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.esm.js.map +1 -1
- package/dist/esm/admin/layout/MicrofrontendContainer/MicrofrontendContainer.module.scss.esm.js +2 -2
- package/dist/esm/miscellaneous/IdentityProviderButton.module.scss.esm.js +2 -2
- package/dist/esm/src/components/admin/layout/LeftNav/LeftNav.d.ts +1 -0
- package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.d.ts +1 -0
- package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.interface.d.ts +1 -0
- package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.d.ts +1 -0
- package/dist/esm/src/components/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.d.ts +2 -1
- package/dist/esm/src/readyclasses.module.scss.esm.js +2 -2
- package/package.json +1 -1
- package/src/components/admin/layout/LeftNav/LeftNav.tsx +12 -1
- package/src/components/admin/layout/LeftNav/LeftNavItem/ButtonLeftNavItem.tsx +23 -7
- package/src/components/admin/layout/LeftNav/LeftNavItem/LeftNavItem.interface.ts +1 -0
- package/src/components/admin/layout/LeftNav/LeftNavItem/LinkLeftNavItem.tsx +3 -2
- package/src/components/admin/layout/LeftNav/LeftNavItem/useKeyboardNavigation.ts +14 -3
|
@@ -34,10 +34,20 @@ export interface Props extends ComponentPropsWithRef<"nav"> {
|
|
|
34
34
|
navigate: (path: string) => void;
|
|
35
35
|
onItemClick?: (path?: string, button?: boolean) => void;
|
|
36
36
|
marginTop?: string;
|
|
37
|
+
internalLinkPrefix?: string;
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
const LeftNavComponent: ForwardRefRenderFunction<HTMLElement, Props> = (
|
|
40
|
-
{
|
|
41
|
+
{
|
|
42
|
+
isSideMenuOpen,
|
|
43
|
+
onScreenSizeChange,
|
|
44
|
+
items,
|
|
45
|
+
navigate,
|
|
46
|
+
onItemClick,
|
|
47
|
+
marginTop,
|
|
48
|
+
internalLinkPrefix,
|
|
49
|
+
...rest
|
|
50
|
+
},
|
|
41
51
|
ref
|
|
42
52
|
) => {
|
|
43
53
|
const [isSideNavbarVisible, setIsSideNavbarVisible] = useState(isSideMenuOpen);
|
|
@@ -62,6 +72,7 @@ const LeftNavComponent: ForwardRefRenderFunction<HTMLElement, Props> = (
|
|
|
62
72
|
navigate={navigate}
|
|
63
73
|
onItemClick={onItemClick}
|
|
64
74
|
refItems={refItems}
|
|
75
|
+
internalLinkPrefix={internalLinkPrefix}
|
|
65
76
|
/>
|
|
66
77
|
);
|
|
67
78
|
});
|
|
@@ -37,17 +37,36 @@ export interface Props extends HTMLProps<HTMLElement> {
|
|
|
37
37
|
refItems: UseRefItemsReturnType;
|
|
38
38
|
NestedComponent: ForwardRefExoticComponent<LeftNavItemProps>;
|
|
39
39
|
closeParentList?: () => void;
|
|
40
|
+
internalLinkPrefix?: string;
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
const chevronIconDataKey = { attributeKey: "chevron-icon", objectKey: "chevronIcon" };
|
|
43
44
|
|
|
44
45
|
const ButtonLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> = (
|
|
45
|
-
{
|
|
46
|
+
{
|
|
47
|
+
item,
|
|
48
|
+
navigate,
|
|
49
|
+
onItemClick,
|
|
50
|
+
refItems,
|
|
51
|
+
NestedComponent,
|
|
52
|
+
closeParentList,
|
|
53
|
+
internalLinkPrefix = ""
|
|
54
|
+
},
|
|
46
55
|
ref
|
|
47
56
|
) => {
|
|
48
57
|
const [expanded, setExpanded] = useState(false);
|
|
49
58
|
const isActiveParent = !!item.items?.find(menuItem => menuItem.active);
|
|
50
|
-
|
|
59
|
+
|
|
60
|
+
const onExpandIconClickHandler = () => {
|
|
61
|
+
setExpanded(expanded => !expanded);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const { onKeyPressNavigation } = useKeyboardNavigation({
|
|
65
|
+
refItems,
|
|
66
|
+
item,
|
|
67
|
+
closeParentList,
|
|
68
|
+
onExpandIconClickHandler
|
|
69
|
+
});
|
|
51
70
|
|
|
52
71
|
const onButtonClickHandler = (event: MouseEvent<HTMLButtonElement>) => {
|
|
53
72
|
const isChevronIcon = !!(event.target as HTMLElement).dataset[chevronIconDataKey.objectKey];
|
|
@@ -62,10 +81,6 @@ const ButtonLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> =
|
|
|
62
81
|
event.preventDefault();
|
|
63
82
|
};
|
|
64
83
|
|
|
65
|
-
const onExpandIconClickHandler = () => {
|
|
66
|
-
setExpanded(expanded => !expanded);
|
|
67
|
-
};
|
|
68
|
-
|
|
69
84
|
const openParentWithActiveElement = () => {
|
|
70
85
|
if (isActiveParent) {
|
|
71
86
|
setExpanded(true);
|
|
@@ -110,7 +125,7 @@ const ButtonLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> =
|
|
|
110
125
|
React.cloneElement(item.iconComponent, { className: classes["menu-item-icon"] })}
|
|
111
126
|
{item.path ? (
|
|
112
127
|
<a
|
|
113
|
-
href={item.path}
|
|
128
|
+
href={item.path ? internalLinkPrefix + item.path : ""}
|
|
114
129
|
aria-current={item.active ? "page" : false}
|
|
115
130
|
className={classes["menu-item-text"]}
|
|
116
131
|
onClick={onLinkClickHandler}
|
|
@@ -145,6 +160,7 @@ const ButtonLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> =
|
|
|
145
160
|
navigate={navigate}
|
|
146
161
|
onItemClick={onItemClick}
|
|
147
162
|
refItems={refItems}
|
|
163
|
+
internalLinkPrefix={internalLinkPrefix}
|
|
148
164
|
>
|
|
149
165
|
{item.title}
|
|
150
166
|
</NestedComponent>
|
|
@@ -27,10 +27,11 @@ export interface Props extends HTMLProps<HTMLElement> {
|
|
|
27
27
|
onItemClick?: (path?: string, button?: boolean) => void;
|
|
28
28
|
refItems: UseRefItemsReturnType;
|
|
29
29
|
closeParentList?: () => void;
|
|
30
|
+
internalLinkPrefix?: string;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
const LinkLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> = (
|
|
33
|
-
{ item, onItemClick, refItems, closeParentList, navigate },
|
|
34
|
+
{ item, onItemClick, refItems, closeParentList, navigate, internalLinkPrefix = "" },
|
|
34
35
|
ref
|
|
35
36
|
) => {
|
|
36
37
|
const { onKeyPressNavigation } = useKeyboardNavigation({ refItems, item, closeParentList });
|
|
@@ -88,7 +89,7 @@ const LinkLeftNavItemComponent: ForwardRefRenderFunction<HTMLElement, Props> = (
|
|
|
88
89
|
aria-current={item.active ? "page" : false}
|
|
89
90
|
aria-disabled={item.disabled}
|
|
90
91
|
className={menuItemLinkClasses.join(" ")}
|
|
91
|
-
href={item.path
|
|
92
|
+
href={item.path ? internalLinkPrefix + item.path : ""}
|
|
92
93
|
tabIndex={tabIndex}
|
|
93
94
|
>
|
|
94
95
|
<div className={classes["menu-item-text-wrapper"]}>
|
|
@@ -22,11 +22,18 @@ interface Props {
|
|
|
22
22
|
item: MenuItem;
|
|
23
23
|
refItems: UseRefItemsReturnType;
|
|
24
24
|
closeParentList?: () => void;
|
|
25
|
+
onExpandIconClickHandler?: () => void;
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
export const useKeyboardNavigation = ({
|
|
28
|
+
export const useKeyboardNavigation = ({
|
|
29
|
+
refItems,
|
|
30
|
+
item,
|
|
31
|
+
closeParentList,
|
|
32
|
+
onExpandIconClickHandler
|
|
33
|
+
}: Props) => {
|
|
34
|
+
const isButtonLeftNavItem = !!onExpandIconClickHandler;
|
|
28
35
|
const onKeyPressNavigation = (e: KeyboardEvent<HTMLButtonElement | HTMLAnchorElement>) => {
|
|
29
|
-
if (e.code === "Escape") {
|
|
36
|
+
if (e.code === "Escape" || e.code === "ArrowLeft") {
|
|
30
37
|
e.preventDefault();
|
|
31
38
|
e.stopPropagation();
|
|
32
39
|
closeParentList?.();
|
|
@@ -55,9 +62,13 @@ export const useKeyboardNavigation = ({ refItems, item, closeParentList }: Props
|
|
|
55
62
|
if (e.code === "Space" || e.code === "Enter") {
|
|
56
63
|
e.stopPropagation();
|
|
57
64
|
e.preventDefault();
|
|
58
|
-
refItems.getNextElement(item.key, true)?.focus();
|
|
65
|
+
isButtonLeftNavItem && refItems.getNextElement(item.key, true)?.focus();
|
|
59
66
|
e.currentTarget.click();
|
|
60
67
|
}
|
|
68
|
+
if (e.code === "ArrowRight") {
|
|
69
|
+
onExpandIconClickHandler?.();
|
|
70
|
+
refItems.getNextElement(item.key, true)?.focus();
|
|
71
|
+
}
|
|
61
72
|
};
|
|
62
73
|
|
|
63
74
|
return { onKeyPressNavigation };
|