1 import React from 'react'
2 import {Breadcrumbs as PrimerBreadcrumbs} from '@primer/react'
3 import {Link as GatsbyLink} from 'gatsby'
4 import * as getNav from '../util/get-nav'
5 import usePage from '../hooks/use-page'
6
7 import * as styles from './breadcrumbs.module.css'
8
9 const BreadcrumbItem = ({item, path}) => {
10 const selected = getNav.isPathForItem(path, getNav.getItem(item.url))
11
12 return (
13 <PrimerBreadcrumbs.Item as={GatsbyLink} to={item.url} {...(selected ? {selected} : {})}>
14 {item.shortName || item.title}
15 </PrimerBreadcrumbs.Item>
16 )
17 }
18
19 const Breadcrumbs = () => {
20 const {pathname} = usePage().location
21 const items = getNav.getItemBreadcrumbs(pathname, {hideVariants: true})
22
23 if (items.length <= 1) {
24 return null
25 }
26
27 return (
28 <PrimerBreadcrumbs className={styles.PrimerBreadcrumbs}>
29 {items.map(item => (
30 <BreadcrumbItem key={item.url} item={item} path={pathname} />
31 ))}
32 </PrimerBreadcrumbs>
33 )
34 }
35
36 export default Breadcrumbs