smart-react-components
Version:
React UI library, wide variety of editable ready to use Styled and React components.
35 lines (30 loc) • 1.7 kB
JavaScript
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var index = require('../index-6d498b59.js');
require('../DOMHelper-c0bd5a29.js');
var React = require('react');
var React__default = _interopDefault(React);
require('styled-components');
require('../index-56ba89df.js');
require('../element/Li.js');
var UseLinkMethods = require('../UseLinkMethods-aa925676.js');
require('react-router');
var A = require('../element/A.js');
require('react-dom');
var WaveEffect = require('../WaveEffect-96d9007c.js');
var Item = require('../Item-188e42fb.js');
const LinkItem = ({ children, to, path, exact = true, elementProps = index.DV.JSX_ELEMENT_PROPS, isActive, disabled, waveEffect }) => {
const { click, active } = UseLinkMethods.useLinkMethods({ to, path, exact });
const getActive$ = () => typeof isActive !== "undefined" ? isActive : active;
const [active$, setActive$] = React__default.useState(() => getActive$());
const activeInit$ = React__default.useRef(false);
React__default.useEffect(() => {
if (!activeInit$.current)
activeInit$.current = true;
else
setActive$(getActive$());
}, [isActive, active]);
const LinkElement = React__default.createElement(A, Object.assign({}, elementProps, { href: to, onClick: click, className: `${elementProps.className || ""} ${active$ ? "active" : ""}`, "data-disabled": disabled }), children);
return (React__default.createElement(Item.Item, null, waveEffect ? React__default.createElement(WaveEffect.WaveEffect, { type: waveEffect }, LinkElement) : LinkElement));
};
module.exports = LinkItem;
;