fluxel
Version:
An ultra-lightweight, high-performance library for efficient DOM building and dynamic web UIs
38 lines (37 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Link", {
enumerable: true,
get: function() {
return Link;
}
});
const _baseReactive = /*#__PURE__*/ _interop_require_default(require("../baseReactive.js"));
const _router = require("./router.js");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const Link = (props)=>{
if (!props || !props.href) {
throw new Error("Link component requires a 'href' property.");
}
const replace = props.replace || false;
const rest = Object.assign({}, props);
delete rest.replace;
const href = rest.href || "#";
const onclick = rest.onclick ? Array.isArray(rest.onclick) ? rest.onclick : [
rest.onclick
] : [];
onclick.push((event)=>{
event.preventDefault();
(0, _router.globalNavigate)(href, {
replace: replace || false
});
});
rest.onclick = onclick;
return _baseReactive.default.a(rest);
};