@workday/canvas-kit-react
Version:
The parent module that contains all Workday Canvas Kit React components
30 lines (29 loc) • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BreadcrumbsCurrentItem = exports.useBreadcrumbsItem = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const common_1 = require("@workday/canvas-kit-react/common");
const tooltip_1 = require("@workday/canvas-kit-react/tooltip");
const collection_1 = require("@workday/canvas-kit-react/collection");
const useBreadcrumbsModel_1 = require("./hooks/useBreadcrumbsModel");
const text_1 = require("@workday/canvas-kit-react/text");
exports.useBreadcrumbsItem = (0, common_1.composeHooks)((0, common_1.createElemPropsHook)(useBreadcrumbsModel_1.useBreadcrumbsModel)((_model, ref, elemProps) => {
const { localRef } = (0, common_1.useLocalRef)((0, common_1.useForkRef)(ref));
let shouldShowTooltip = false;
const refCurrent = localRef.current;
if (refCurrent) {
const { scrollWidth, clientWidth } = refCurrent;
shouldShowTooltip = scrollWidth > clientWidth;
}
return {
tabIndex: shouldShowTooltip ? 0 : undefined,
ref: localRef,
};
}), collection_1.useOverflowListItemMeasure, collection_1.useListItemRegister);
exports.BreadcrumbsCurrentItem = (0, common_1.createSubcomponent)('li')({
displayName: 'Breadcrumbs.Item',
modelHook: useBreadcrumbsModel_1.useBreadcrumbsModel,
elemPropsHook: exports.useBreadcrumbsItem,
})(({ children, tooltipProps = {}, maxWidth = '350px', ...elemProps }, Element) => {
return ((0, jsx_runtime_1.jsx)(tooltip_1.OverflowTooltip, { ...tooltipProps, children: (0, jsx_runtime_1.jsx)(text_1.Text, { as: Element, typeLevel: "subtext.large", fontWeight: "medium", display: "inline-block", maxWidth: maxWidth, whiteSpace: "nowrap", textOverflow: "ellipsis", overflow: "hidden", ...elemProps, children: children }) }));
});