/* eslint-disable react/prop-types */ import _ from 'lodash'; import React from 'react'; import PropTypes from 'prop-types'; import { lucidClassNames } from '../../util/style-helpers'; import { findTypes, StandardProps } from '../../util/component-types'; const cx = lucidClassNames.bind('&-Breadcrumb'); const { any, node } = PropTypes; export interface IBreadcrumbItemProps extends StandardProps {} const BreadcrumbItem = (_props: IBreadcrumbItemProps): null => null; BreadcrumbItem.displayName = 'Breadcrumb.Item'; BreadcrumbItem.peek = { description: `Renders a \`li\``, }; BreadcrumbItem.propName = 'Item'; BreadcrumbItem.propTypes = { children: node, }; export interface IBreadcrumbProps extends StandardProps, React.DetailedHTMLProps< React.HTMLAttributes, HTMLDivElement > { Item?: string | (React.ReactNode & { props: IBreadcrumbItemProps }); } export const Breadcrumb = (props: IBreadcrumbProps): React.ReactElement => { const { className, ...passThroughs } = props; const items = findTypes(props, Breadcrumb.Item); const initialItems = _.initial(items); const lastItem = _.last(items); return ( ); }; Breadcrumb.displayName = 'Breadcrumb'; Breadcrumb.peek = { description: `A navigation component to show a user's place in a navigation hierarchy and provide links to return to higher points in that hierarchy.`, categories: ['navigation'], }; Breadcrumb.propTypes = { /** All children should be \`Breadcrumb.Item\`s. Others are ignored. */ children: node, /** Appended to the component-specific class names set on the root element. Value is run through the \`classnames\` library. */ className: any, /** A child element that renders a \`li\`. */ Item: node, }; Breadcrumb.Item = BreadcrumbItem; export default Breadcrumb;