UNPKG

reactui

Version:

A components library for ReactJS. This is part of the Gearz project

53 lines (46 loc) 2.07 kB
define(["exports"], function (exports) { "use strict"; var React = require("react"); var gearzMixin = require("../../gearz.mixin"); var Link = React.createClass({ displayName: "Link", mixins: [gearzMixin], processAjaxData: function processAjaxData(response, urlPath) { document.getElementById("content").innerHTML = response.html; document.title = response.pageTitle; window.history.pushState({ html: response.html, pageTitle: response.pageTitle }, "", urlPath); }, navigator: function navigator(routeInfo) { return (function (e) { var onNavigate = this.props.onNavigate; onNavigate && onNavigate(e); if (routeInfo.routeData.isClient) { //var currentInfo = this.props.router.getCurrentLocationInfo(); var Component = window[routeInfo.routeData.pageComponent]; var targetElement = document.getElementById(this.props.target); if (Component && targetElement) { React.render(React.createElement(Component, null), targetElement); window.history.pushState({ pageComponent: routeInfo.routeData.pageComponent, viewData: {}, pageTitle: "TITLE" }, null, routeInfo.uri); } } e.preventDefault(); }).bind(this); }, render: function render() { var href = this.props.href, router = this.props.router, onNavigate = this.props.onNavigate; // triggered when navigating through this link var routeInfo = router.getInfo(href); return React.createElement( "a", { href: routeInfo.uri, onClick: this.navigator(routeInfo) }, routeInfo.uri ); } }); module.exports = Link; });