Skip to content

Commit ab4b178

Browse files
chore(js-ts): Add missing TypeScript files for breadcrumbs components
Co-Authored-By: Joseph Gross <joseph@cognition.ai>
1 parent 15aa9d9 commit ab4b178

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
* @file Clickable breadcrumb component
3+
* @author Box
4+
*/
5+
6+
import * as React from 'react';
7+
import { TextButton } from '@box/blueprint-web';
8+
import BreadcrumbDelimiter from './BreadcrumbDelimiter';
9+
import { Delimiter } from '../../../common/types/core';
10+
11+
import './Breadcrumb.scss';
12+
13+
interface Props {
14+
delimiter?: Delimiter;
15+
isLast?: boolean;
16+
name: string;
17+
onClick?: React.MouseEventHandler<HTMLButtonElement>;
18+
}
19+
20+
const Breadcrumb = ({ name = '', onClick, isLast, delimiter }: Props) => {
21+
const title = onClick ? (
22+
<TextButton className="bdl-Breadcrumb-title" inheritFont onClick={onClick}>
23+
{name}
24+
</TextButton>
25+
) : (
26+
<div className="bdl-Breadcrumb-title">{name}</div>
27+
);
28+
return (
29+
<span className="be-breadcrumb">
30+
{title}
31+
{isLast ? null : <BreadcrumbDelimiter delimiter={delimiter} />}
32+
</span>
33+
);
34+
};
35+
36+
export default Breadcrumb;
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* @file Clickable breadcrumb component
3+
* @author Box
4+
*/
5+
6+
import * as React from 'react';
7+
import { PointerChevronRight } from '@box/blueprint-web-assets/icons/Fill';
8+
import { Gray50, Size3 } from '@box/blueprint-web-assets/tokens/tokens';
9+
import { Delimiter } from '../../../common/types/core';
10+
import { DELIMITER_CARET } from '../../../constants';
11+
12+
interface Props {
13+
delimiter?: Delimiter;
14+
}
15+
16+
const BreadcrumbDelimiter = ({ delimiter }: Props) =>
17+
delimiter === DELIMITER_CARET ? (
18+
<PointerChevronRight
19+
className="be-breadcrumb-seperator"
20+
color={Gray50}
21+
height={Size3}
22+
role="presentation"
23+
width={Size3}
24+
/>
25+
) : (
26+
<span>/</span>
27+
);
28+
29+
export default BreadcrumbDelimiter;

0 commit comments

Comments
 (0)