Skip to content

Commit 6709d7f

Browse files
author
Austin Green
authored
feat(breadcrumbs): deprecate BreadcrumbContainer and migrate to useBreadcrumb() container (#444)
1 parent 4285785 commit 6709d7f

File tree

4 files changed

+23
-28
lines changed

4 files changed

+23
-28
lines changed

packages/breadcrumbs/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"start": "../../utils/scripts/start.sh"
2020
},
2121
"dependencies": {
22+
"@zendeskgarden/container-breadcrumb": "^0.2.2",
2223
"classnames": "^2.2.5"
2324
},
2425
"peerDependencies": {
Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,7 @@
1-
```jsx
2-
const { Anchor } = require('@zendeskgarden/react-buttons/src');
1+
## DEPRECATION WARNING
32

4-
<BreadcrumbContainer>
5-
{({ getContainerProps }) => (
6-
/* role not needed as `BreadcrumbView` is a navigation landmark. */
7-
<BreadcrumbView {...getContainerProps({ role: null })}>
8-
<List>
9-
<Item>
10-
<Anchor>One</Anchor>
11-
</Item>
12-
<Item>
13-
<Anchor>Two</Anchor>
14-
</Item>
15-
<Item current>Three</Item>
16-
</List>
17-
</BreadcrumbView>
18-
)}
19-
</BreadcrumbContainer>;
20-
```
3+
This component has been deprecated in favor of the API provided in the
4+
[@zendeskgarden/container-breadcrumb](https://www.npmjs.com/package/@zendeskgarden/container-breadcrumb)
5+
package.
6+
7+
This package will be removed in a future major release.

packages/breadcrumbs/src/containers/BreadcrumbContainer.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,16 @@
88
import { Component } from 'react';
99
import PropTypes from 'prop-types';
1010

11+
if (process.env.NODE_ENV !== 'production') {
12+
/* eslint-disable no-console */
13+
console.warn(
14+
'Deprecation Warning: The `BreadcrumbContainer` component has been deprecated. ' +
15+
'It will be removed in an upcoming major release. Migrate to the ' +
16+
'`@zendeskgarden/container-breadcrumb` package to continue receiving updates.'
17+
);
18+
/* eslint-enable */
19+
}
20+
1121
export default class BreadcrumbContainer extends Component {
1222
static propTypes = {
1323
/**

packages/breadcrumbs/src/elements/Breadcrumb.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
import React, { Component, Children, cloneElement } from 'react';
99
import PropTypes from 'prop-types';
1010
import { hasType } from '@zendeskgarden/react-utilities';
11+
import { useBreadcrumb } from '@zendeskgarden/container-breadcrumb';
1112

12-
import BreadcrumbContainer from '../containers/BreadcrumbContainer';
1313
import BreadcrumbView from '../views/BreadcrumbView';
1414
import List from '../views/List';
1515
import Item from '../views/Item';
@@ -44,16 +44,13 @@ export default class Breadcrumb extends Component {
4444

4545
render() {
4646
const { children, ...breadcrumbProps } = this.props;
47+
const { getContainerProps, getCurrentPageProps } = useBreadcrumb();
4748

4849
return (
49-
<BreadcrumbContainer>
50-
{({ getContainerProps, getCurrentPageProps }) => (
51-
/* role not needed as `BreadcrumbView` is a navigation landmark. */
52-
<BreadcrumbView {...getContainerProps({ role: null })}>
53-
<List {...breadcrumbProps}>{this.renderItems(children, getCurrentPageProps)}</List>
54-
</BreadcrumbView>
55-
)}
56-
</BreadcrumbContainer>
50+
/* role not needed as `BreadcrumbView` is a navigation landmark. */
51+
<BreadcrumbView {...getContainerProps({ role: null })}>
52+
<List {...breadcrumbProps}>{this.renderItems(children, getCurrentPageProps)}</List>
53+
</BreadcrumbView>
5754
);
5855
}
5956
}

0 commit comments

Comments
 (0)