UNPKG

@gongt/ts-stl-client

Version:
59 lines 2.78 kB
"use strict"; 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