UNPKG

2.78 kBJavaScriptView Raw
1"use strict";
2var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 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;
6 return c > 3 && r && Object.defineProperty(target, key, r), r;
7};
8var __metadata = (this && this.__metadata) || function (k, v) {
9 if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10};
11Object.defineProperty(exports, "__esModule", { value: true });
12const React = require("react");
13const auto_style_1 = require("../../react/library/auto-style");
14const stateless_component_1 = require("../../react/stateless-component");
15const react_connect_1 = require("../react-connect");
16const virtual_store_1 = require("../virtual-store");
17const redux_router_store_1 = require("./redux-router.store");
18const connector = new react_connect_1.ReactReduxConnector();
19const mapper = virtual_store_1.subExtractorOf(redux_router_store_1.routing, 'location');
20connector.addMapper((state) => {
21 return { route: mapper(state).pathname };
22});
23let ALink = class ALink extends stateless_component_1.BaseComponent {
24 jump(e) {
25 e.preventDefault();
26 return {
27 method: this.props.routeMethod || redux_router_store_1.RoutingMethod.push,
28 url: this.props.href,
29 };
30 }
31 render() {
32 let { onClick, route, routeMethod, activeStyle, renderCounts, _dispatch, href, style, ...props } = this.props;
33 const isActive = route === href;
34 if (isActive) {
35 if (!activeStyle) {
36 activeStyle = { cursor: 'default', userSelect: 'none' };
37 }
38 if (style) {
39 style = Object.assign({ userSelect: 'none' }, style, activeStyle);
40 }
41 else {
42 style = activeStyle;
43 }
44 }
45 return React.createElement("a", Object.assign({}, props, { style: auto_style_1.prefixAll(style), href: isActive ? undefined : href, onClick: isActive ? undefined : this.jump }));
46 }
47};
48__decorate([
49 stateless_component_1.BindThis,
50 react_connect_1.ActionTrigger(redux_router_store_1.RouteAction),
51 __metadata("design:type", Function),
52 __metadata("design:paramtypes", [Object]),
53 __metadata("design:returntype", void 0)
54], ALink.prototype, "jump", null);
55ALink = __decorate([
56 connector.connect
57], ALink);
58exports.ALink = ALink;
59//# sourceMappingURL=a-link.js.map
\No newline at end of file