@vertisanpro/flowbite-react
Version:
Non-Official React components built for Flowbite and Tailwind CSS
17 lines (16 loc) • 1.13 kB
JavaScript
import { HiOutlineChevronRight } from '@vertisanpro/react-icons/hi';
import { twMerge } from '@vertisanpro/tailwind-merge';
import React, { forwardRef } from 'react';
import { mergeDeep } from '../../helpers/merge-deep';
import { getTheme } from '../../theme-store';
export const BreadcrumbItem = forwardRef(({ children, className, href, icon: Icon, theme: customTheme = {}, ...props }, ref) => {
const isLink = typeof href !== 'undefined';
const Component = isLink ? 'a' : 'span';
const theme = mergeDeep(getTheme().breadcrumb.item, customTheme);
return (React.createElement("li", { className: twMerge(theme.base, className), ...props },
React.createElement(HiOutlineChevronRight, { "aria-hidden": true, className: theme.chevron, "data-testid": "flowbite-breadcrumb-separator" }),
React.createElement(Component, { ref: ref, className: theme.href[isLink ? 'on' : 'off'], "data-testid": "flowbite-breadcrumb-item", href: href },
Icon && React.createElement(Icon, { "aria-hidden": true, className: theme.icon }),
children)));
});
BreadcrumbItem.displayName = 'Breadcrumb.Item';