From 03eadd20c856a18121c5cb516fd49cd2ddc87b6a Mon Sep 17 00:00:00 2001 From: Anamika T S <47971732+anamikaanu96@users.noreply.github.com> Date: Fri, 20 Sep 2024 12:30:52 +0530 Subject: [PATCH] fix(CreateFullPage): breadcrumb tooltip visibility issue (#6064) --- .../CreateFullPage/CreateFullPage.stories.jsx | 2 ++ .../src/components/CreateFullPage/CreateFullPage.tsx | 12 ++++++++++++ .../src/components/SimpleHeader/SimpleHeader.js | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.stories.jsx b/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.stories.jsx index a57cc5ac8f..d3a111bfbc 100644 --- a/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.stories.jsx +++ b/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.stories.jsx @@ -568,6 +568,7 @@ createFullPageWithHeader.args = { { key: '3', label: 'Breadcrumb 4', isCurrentPage: true }, ], maxVisibleBreadcrumbs: 3, + breadcrumbOverflowTooltipAlign: 'right', }; export const createFullPageWithStepInErrorState = TemplateWithError.bind({}); @@ -818,4 +819,5 @@ createFullPageWithGlobalHeader.args = { { key: '3', label: 'Breadcrumb 4', isCurrentPage: true }, ], maxVisibleBreadcrumbs: 3, + breadcrumbOverflowTooltipAlign: 'right', }; diff --git a/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.tsx b/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.tsx index a00bdc20b7..d3bfb99c9f 100644 --- a/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.tsx +++ b/packages/ibm-products/src/components/CreateFullPage/CreateFullPage.tsx @@ -13,6 +13,7 @@ import { ModalBody, ModalFooter, ModalHeader, + Tooltip, } from '@carbon/react'; // Import portions of React that are needed. import React, { @@ -79,6 +80,8 @@ type CreateFullPageBreadcrumbsProps = * Label for open/close overflow button used for breadcrumb items that do not fit */ breadcrumbsOverflowAriaLabel?: never; + + breadcrumbOverflowTooltipAlign?: never; } | { /** The header breadcrumbs */ @@ -88,6 +91,8 @@ type CreateFullPageBreadcrumbsProps = * Label for open/close overflow button used for breadcrumb items that do not fit */ breadcrumbsOverflowAriaLabel: string; + + breadcrumbOverflowTooltipAlign?: string; }; type CreateFullPageBaseProps = { @@ -235,6 +240,7 @@ export let CreateFullPage = React.forwardRef( noTrailingSlash, title, secondaryTitle, + breadcrumbOverflowTooltipAlign = 'right', ...rest }: CreateFullPageProps, ref: ForwardedRef @@ -340,6 +346,7 @@ export let CreateFullPage = React.forwardRef( overflowAriaLabel={breadcrumbsOverflowAriaLabel} maxVisible={maxVisibleBreadcrumbs} className={`${blockClass}__header`} + overflowTooltipAlign={breadcrumbOverflowTooltipAlign} /> )}
@@ -433,6 +440,11 @@ CreateFullPage.propTypes = { */ backButtonText: PropTypes.string.isRequired, + /** + * align breadcrumb overflow tooltip + */ + breadcrumbOverflowTooltipAlign: Tooltip.propTypes.align, + /** The header breadcrumbs */ /**@ts-ignore */ breadcrumbs: PropTypes.arrayOf( diff --git a/packages/ibm-products/src/components/SimpleHeader/SimpleHeader.js b/packages/ibm-products/src/components/SimpleHeader/SimpleHeader.js index 99b897c43b..3a3e776257 100644 --- a/packages/ibm-products/src/components/SimpleHeader/SimpleHeader.js +++ b/packages/ibm-products/src/components/SimpleHeader/SimpleHeader.js @@ -13,6 +13,7 @@ import { pkg } from '../../settings'; import pconsole from '../../global/js/utils/pconsole'; import { BreadcrumbWithOverflow } from '../BreadcrumbWithOverflow'; import { isRequiredIf } from '../../global/js/utils/props-helper'; +import { Tooltip } from '@carbon/react'; const blockClass = `${pkg.prefix}--simple-header`; const componentName = 'SimpleHeader'; @@ -35,6 +36,7 @@ const SimpleHeader = ({ noTrailingSlash = true, maxVisible, overflowAriaLabel, + overflowTooltipAlign, ...rest }) => { const warnIfNoTitleOrBreadcrumbs = useCallback(() => { @@ -58,6 +60,7 @@ const SimpleHeader = ({ breadcrumbs={breadcrumbs} maxVisible={maxVisible} overflowAriaLabel={overflowAriaLabel} + overflowTooltipAlign={overflowTooltipAlign} /> )} {title &&

{title}

} @@ -99,6 +102,10 @@ SimpleHeader.propTypes = { /** Label for open/close overflow button used for breadcrumb items that do not fit */ overflowAriaLabel: overflowAriaLabel_required_if_breadcrumbs_exist, + /** + * overflowTooltipAlign: align tooltip position + */ + overflowTooltipAlign: Tooltip.propTypes.align, /** Header title */ title: PropTypes.string, };