UNPKG

@coreui/react

Version:

UI Components Library for React.js

36 lines (32 loc) 1.51 kB
'use strict'; var tslib_es6 = require('../../node_modules/tslib/tslib.es6.js'); var React = require('react'); var PropTypes = require('prop-types'); var index = require('../../_virtual/index.js'); var CLink = require('../link/CLink.js'); var CSidebarNavContext = require('../sidebar/CSidebarNavContext.js'); var useForkedRef = require('../../hooks/useForkedRef.js'); require('@popperjs/core'); var CNavLink = React.forwardRef(function (_a, ref) { var children = _a.children, className = _a.className, idx = _a.idx, rest = tslib_es6.__rest(_a, ["children", "className", "idx"]); var navLinkRef = React.useRef(null); var forkedRef = useForkedRef.useForkedRef(ref, navLinkRef); var setVisibleGroup = React.useContext(CSidebarNavContext.CSidebarNavContext).setVisibleGroup; React.useEffect(function () { var _a; rest.active = (_a = navLinkRef.current) === null || _a === void 0 ? void 0 : _a.classList.contains('active'); idx && rest.active && setVisibleGroup(idx); }, [rest.active, className]); return (React.createElement(CLink.CLink, tslib_es6.__assign({ className: index.default('nav-link', className) }, rest, { ref: forkedRef }), children)); }); CNavLink.propTypes = { active: PropTypes.bool, as: PropTypes.elementType, children: PropTypes.node, className: PropTypes.string, disabled: PropTypes.bool, idx: PropTypes.string, }; CNavLink.displayName = 'CNavLink'; exports.CNavLink = CNavLink; //# sourceMappingURL=CNavLink.js.map