@pantheon-systems/design-toolkit-react
Version:
Pantheon's React Design Toolkit
35 lines (32 loc) • 929 B
JavaScript
import { useContext, useRef, useCallback } from 'react';
import BreadcrumbsContext from '../BreadcrumbsContext.js';
var uniqueId = 0;
var useDeferCrumb = function useDeferCrumb() {
var _useContext = useContext(BreadcrumbsContext),
deferCrumb = _useContext.deferCrumb,
resolveCrumb = _useContext.resolveCrumb;
var ref = useRef(null);
var getUniqueId = useCallback(function () {
if (ref.current) {
return ref.current;
}
uniqueId += 1;
ref.current = uniqueId;
return ref.current;
}, []);
var defer = useCallback(function () {
var id = getUniqueId();
deferCrumb(id);
return id;
}, [deferCrumb, getUniqueId]);
var resolve = useCallback(function (id) {
resolveCrumb(id);
}, [resolveCrumb]);
return {
defer: defer,
resolve: resolve
};
};
var useDeferCrumb$1 = useDeferCrumb;
export { useDeferCrumb$1 as default };
//# sourceMappingURL=useDeferCrumb.js.map