opds-web-client
Version:
50 lines (49 loc) • 1.99 kB
JavaScript
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
var React = require("react");
var ReactDOM = require("react-dom");
var react_router_1 = require("react-router");
var OPDSCatalog_1 = require("./components/OPDSCatalog");
require("./stylesheets/app.scss");
var OPDSWebClient = (function () {
function OPDSWebClient(config, elementId) {
this.elementId = elementId;
this.pathPattern = config.pathPattern || "/(collection/:collectionUrl/)(book/:bookUrl/)";
this.RouteHandler = React.createClass({
contextTypes: {
router: React.PropTypes.object.isRequired
},
childContextTypes: {
pathFor: React.PropTypes.func.isRequired
},
getChildContext: function () {
return {
pathFor: config.pathFor
};
},
render: function () {
var _a = this.props.params, collectionUrl = _a.collectionUrl, bookUrl = _a.bookUrl;
var mergedProps = Object.assign(config, {
collectionUrl: collectionUrl,
bookUrl: bookUrl
});
return React.createElement(OPDSCatalog_1.default, __assign({}, mergedProps));
}
});
this.render();
}
OPDSWebClient.prototype.render = function () {
var RouteHandler = this.RouteHandler;
ReactDOM.render(React.createElement(react_router_1.Router, { history: react_router_1.browserHistory },
React.createElement(react_router_1.Route, { path: this.pathPattern, component: RouteHandler })), document.getElementById(this.elementId));
};
return OPDSWebClient;
}());
module.exports = OPDSWebClient;
;