@atlaskit/breadcrumbs
Version:
Breadcrumbs are a navigation system used to show a user's location in a site or app.
31 lines (30 loc) • 1.15 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useOnRevealed = useOnRevealed;
var _react = require("react");
var _usePreviousValue = _interopRequireDefault(require("@atlaskit/ds-lib/use-previous-value"));
/**
* The hook is used to invoke callback after breadcrumbs is revealed.
*
* The hook checks if previous state of breadcrumbs was collapsed and current state is expanded
* and if so invoke received callback.
*
* @param callback the function to invoke after revealing
* @param param1 the object that contain two field:
* 1) isExpanded - current state of breadcrumbs
* 2) isDisabled - to disable the callback.
*/
function useOnRevealed(callback, _ref) {
var isExpanded = _ref.isExpanded,
isDisabled = _ref.isDisabled;
var prevExtended = (0, _usePreviousValue.default)(isExpanded);
(0, _react.useEffect)(function () {
var hasBeenRevealed = !prevExtended && isExpanded;
if (!isDisabled && hasBeenRevealed) {
callback();
}
}, [isExpanded, isDisabled, callback, prevExtended]);
}