@gongt/ts-stl-client
Version:
59 lines • 2.78 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const auto_style_1 = require("../../react/library/auto-style");
const stateless_component_1 = require("../../react/stateless-component");
const react_connect_1 = require("../react-connect");
const virtual_store_1 = require("../virtual-store");
const redux_router_store_1 = require("./redux-router.store");
const connector = new react_connect_1.ReactReduxConnector();
const mapper = virtual_store_1.subExtractorOf(redux_router_store_1.routing, 'location');
connector.addMapper((state) => {
return { route: mapper(state).pathname };
});
let ALink = class ALink extends stateless_component_1.BaseComponent {
jump(e) {
e.preventDefault();
return {
method: this.props.routeMethod || redux_router_store_1.RoutingMethod.push,
url: this.props.href,
};
}
render() {
let { onClick, route, routeMethod, activeStyle, renderCounts, _dispatch, href, style, ...props } = this.props;
const isActive = route === href;
if (isActive) {
if (!activeStyle) {
activeStyle = { cursor: 'default', userSelect: 'none' };
}
if (style) {
style = Object.assign({ userSelect: 'none' }, style, activeStyle);
}
else {
style = activeStyle;
}
}
return React.createElement("a", Object.assign({}, props, { style: auto_style_1.prefixAll(style), href: isActive ? undefined : href, onClick: isActive ? undefined : this.jump }));
}
};
__decorate([
stateless_component_1.BindThis,
react_connect_1.ActionTrigger(redux_router_store_1.RouteAction),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", void 0)
], ALink.prototype, "jump", null);
ALink = __decorate([
connector.connect
], ALink);
exports.ALink = ALink;
//# sourceMappingURL=a-link.js.map