diff --git a/dist/BreadcrumbsItem.js b/dist/BreadcrumbsItem.js
index aede81a..41e32e3 100644
--- a/dist/BreadcrumbsItem.js
+++ b/dist/BreadcrumbsItem.js
@@ -29,7 +29,8 @@ var BreadcrumbsItem = function BreadcrumbsItem(props) {
var _props$parentProps = props.parentProps,
ActiveLinkComponent = _props$parentProps.ActiveLinkComponent,
LinkComponent = _props$parentProps.LinkComponent,
- routeMatcherRegex = _props$parentProps.routeMatcherRegex;
+ routeMatcherRegex = _props$parentProps.routeMatcherRegex,
+ titleFn = _props$parentProps.titleFn;
var placeholderMatcher = /:[^\s/]+/g;
@@ -125,6 +126,8 @@ var BreadcrumbsItem = function BreadcrumbsItem(props) {
var routeName = matchRouteName(match.url, mappedRoutes);
if (routeName !== null) routeName = routeName || name;
+ if (titleFn && isDefined(routeName) && match.isExact) document.title = titleFn(routeName);
+
if (isDefined(routeName)) return match.isExact ? _react2.default.createElement(
ActiveLinkComponent,
null,
diff --git a/dist/index.js b/dist/index.js
index cc43b31..a5475cb 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -31,7 +31,8 @@ var BreadcrumbsWrapper = function BreadcrumbsWrapper(props) {
ActiveLinkComponent: props.ActiveLinkComponent,
LinkComponent: props.LinkComponent,
rootName: props.rootName,
- routeMatcherRegex: props.routeMatcherRegex
+ routeMatcherRegex: props.routeMatcherRegex,
+ titleFn: props.titleFn
}, rest));
}
});
@@ -59,7 +60,8 @@ BreadcrumbsWrapper.defaultProps = {
props.children
);
},
- rootName: ''
+ rootName: '',
+ titleFn: undefined
};
BreadcrumbsWrapper.propTypes = {
@@ -68,7 +70,8 @@ BreadcrumbsWrapper.propTypes = {
ActiveLinkComponent: _propTypes2.default.func,
LinkComponent: _propTypes2.default.func,
rootName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),
- routeMatcherRegex: _propTypes2.default.string
+ routeMatcherRegex: _propTypes2.default.string,
+ titleFn: _propTypes2.default.func
};
exports.default = BreadcrumbsWrapper;
\ No newline at end of file
diff --git a/src/BreadcrumbsItem.js b/src/BreadcrumbsItem.js
index 013c70a..b02630d 100644
--- a/src/BreadcrumbsItem.js
+++ b/src/BreadcrumbsItem.js
@@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
export const isDefined = v => (v !== undefined && v !== null && v !== false && String(v).length > 0);
const BreadcrumbsItem = (props) => {
const {match, name, mappedRoutes} = props;
- const {ActiveLinkComponent, LinkComponent, routeMatcherRegex} = props.parentProps;
+ const {ActiveLinkComponent, LinkComponent, routeMatcherRegex, titleFn} = props.parentProps;
const placeholderMatcher = /:[^\s/]+/g;
const getPlaceholderVars = (url, key) => {
@@ -75,6 +75,9 @@ const BreadcrumbsItem = (props) => {
if (routeName !== null)
routeName = routeName || name;
+ if (titleFn && isDefined(routeName) && match.isExact)
+ document.title = titleFn(routeName);
+
if (isDefined(routeName))
return match.isExact
?