@enact/ui
Version:
A collection of simplified unstyled cross-platform UI components for Enact
29 lines (28 loc) • 843 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
exports.useLink = useLink;
var _react = require("react");
var _util = require("./util");
function useLink() {
var _ref = (0, _react.use)(_util.RouteContext) || {},
currentPath = _ref.path,
navigate = _ref.navigate;
var handleNavigate = (0, _react.useCallback)(function (_ref2) {
var path = _ref2.path;
if (!navigate) return;
navigate({
path: (0, _util.resolve)(currentPath, path)
});
},
// omitting currentPath in order to cache the value used a mount time to avoid evaluating
// relative paths against updated currentPath values
// eslint-disable-next-line react-hooks/exhaustive-deps
[navigate]);
return {
navigate: handleNavigate
};
}
var _default = exports["default"] = useLink;
;