UNPKG

react-static

Version:

A progressive static site generator for React

57 lines (46 loc) 4.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var locationSubscribers = []; var triggerLocationChange = function triggerLocationChange(location) { return locationSubscribers.forEach(function (s) { return s(location); }); }; var onLocationChange = function onLocationChange(cb) { locationSubscribers.push(cb); return function () { locationSubscribers = locationSubscribers.filter(function (d) { return d !== cb; }); }; }; init(); var _default = onLocationChange; exports["default"] = _default; function init() { if (typeof document !== 'undefined') { var oldPopstate = window.onpopstate; window.onpopstate = function () { if (oldPopstate) { oldPopstate.apply(void 0, arguments); } triggerLocationChange(window.location); }; ['pushState', 'replaceState'].forEach(function (methodName) { var old = window.history[methodName]; window.history[methodName] = function () { setTimeout(function () { return triggerLocationChange(window.location); }, 0); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return old.apply(window.history, args); }; }); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9icm93c2VyL3V0aWxzL29uTG9jYXRpb25DaGFuZ2UuanMiXSwibmFtZXMiOlsibG9jYXRpb25TdWJzY3JpYmVycyIsInRyaWdnZXJMb2NhdGlvbkNoYW5nZSIsImxvY2F0aW9uIiwiZm9yRWFjaCIsInMiLCJvbkxvY2F0aW9uQ2hhbmdlIiwiY2IiLCJwdXNoIiwiZmlsdGVyIiwiZCIsImluaXQiLCJkb2N1bWVudCIsIm9sZFBvcHN0YXRlIiwid2luZG93Iiwib25wb3BzdGF0ZSIsIm1ldGhvZE5hbWUiLCJvbGQiLCJoaXN0b3J5Iiwic2V0VGltZW91dCIsImFyZ3MiLCJhcHBseSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBSUEsbUJBQW1CLEdBQUcsRUFBMUI7O0FBQ0EsSUFBTUMscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUF3QixDQUFBQyxRQUFRO0FBQUEsU0FDcENGLG1CQUFtQixDQUFDRyxPQUFwQixDQUE0QixVQUFBQyxDQUFDO0FBQUEsV0FBSUEsQ0FBQyxDQUFDRixRQUFELENBQUw7QUFBQSxHQUE3QixDQURvQztBQUFBLENBQXRDOztBQUVBLElBQU1HLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsQ0FBQUMsRUFBRSxFQUFJO0FBQzdCTixFQUFBQSxtQkFBbUIsQ0FBQ08sSUFBcEIsQ0FBeUJELEVBQXpCO0FBQ0EsU0FBTyxZQUFNO0FBQ1hOLElBQUFBLG1CQUFtQixHQUFHQSxtQkFBbUIsQ0FBQ1EsTUFBcEIsQ0FBMkIsVUFBQUMsQ0FBQztBQUFBLGFBQUlBLENBQUMsS0FBS0gsRUFBVjtBQUFBLEtBQTVCLENBQXRCO0FBQ0QsR0FGRDtBQUdELENBTEQ7O0FBT0FJLElBQUk7ZUFFV0wsZ0I7OztBQUVmLFNBQVNLLElBQVQsR0FBZ0I7QUFDZCxNQUFJLE9BQU9DLFFBQVAsS0FBb0IsV0FBeEIsRUFBcUM7QUFDbkMsUUFBTUMsV0FBVyxHQUFHQyxNQUFNLENBQUNDLFVBQTNCOztBQUNBRCxJQUFBQSxNQUFNLENBQUNDLFVBQVAsR0FBb0IsWUFBYTtBQUMvQixVQUFJRixXQUFKLEVBQWlCO0FBQ2ZBLFFBQUFBLFdBQVcsTUFBWDtBQUNEOztBQUNEWCxNQUFBQSxxQkFBcUIsQ0FBQ1ksTUFBTSxDQUFDWCxRQUFSLENBQXJCO0FBQ0QsS0FMRDs7QUFNQyxLQUFDLFdBQUQsRUFBYyxjQUFkLEVBQThCQyxPQUE5QixDQUFzQyxVQUFBWSxVQUFVLEVBQUk7QUFDbkQsVUFBTUMsR0FBRyxHQUFHSCxNQUFNLENBQUNJLE9BQVAsQ0FBZUYsVUFBZixDQUFaOztBQUNBRixNQUFBQSxNQUFNLENBQUNJLE9BQVAsQ0FBZUYsVUFBZixJQUE2QixZQUFhO0FBQ3hDRyxRQUFBQSxVQUFVLENBQUM7QUFBQSxpQkFBTWpCLHFCQUFxQixDQUFDWSxNQUFNLENBQUNYLFFBQVIsQ0FBM0I7QUFBQSxTQUFELEVBQStDLENBQS9DLENBQVY7O0FBRHdDLDBDQUFUaUIsSUFBUztBQUFUQSxVQUFBQSxJQUFTO0FBQUE7O0FBRXhDLGVBQU9ILEdBQUcsQ0FBQ0ksS0FBSixDQUFVUCxNQUFNLENBQUNJLE9BQWpCLEVBQTBCRSxJQUExQixDQUFQO0FBQ0QsT0FIRDtBQUlELEtBTkE7QUFPRjtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsibGV0IGxvY2F0aW9uU3Vic2NyaWJlcnMgPSBbXVxuY29uc3QgdHJpZ2dlckxvY2F0aW9uQ2hhbmdlID0gbG9jYXRpb24gPT5cbiAgbG9jYXRpb25TdWJzY3JpYmVycy5mb3JFYWNoKHMgPT4gcyhsb2NhdGlvbikpXG5jb25zdCBvbkxvY2F0aW9uQ2hhbmdlID0gY2IgPT4ge1xuICBsb2NhdGlvblN1YnNjcmliZXJzLnB1c2goY2IpXG4gIHJldHVybiAoKSA9PiB7XG4gICAgbG9jYXRpb25TdWJzY3JpYmVycyA9IGxvY2F0aW9uU3Vic2NyaWJlcnMuZmlsdGVyKGQgPT4gZCAhPT0gY2IpXG4gIH1cbn1cblxuaW5pdCgpXG5cbmV4cG9ydCBkZWZhdWx0IG9uTG9jYXRpb25DaGFuZ2VcblxuZnVuY3Rpb24gaW5pdCgpIHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjb25zdCBvbGRQb3BzdGF0ZSA9IHdpbmRvdy5vbnBvcHN0YXRlXG4gICAgd2luZG93Lm9ucG9wc3RhdGUgPSAoLi4uYXJncykgPT4ge1xuICAgICAgaWYgKG9sZFBvcHN0YXRlKSB7XG4gICAgICAgIG9sZFBvcHN0YXRlKC4uLmFyZ3MpXG4gICAgICB9XG4gICAgICB0cmlnZ2VyTG9jYXRpb25DaGFuZ2Uod2luZG93LmxvY2F0aW9uKVxuICAgIH1cbiAgICA7WydwdXNoU3RhdGUnLCAncmVwbGFjZVN0YXRlJ10uZm9yRWFjaChtZXRob2ROYW1lID0+IHtcbiAgICAgIGNvbnN0IG9sZCA9IHdpbmRvdy5oaXN0b3J5W21ldGhvZE5hbWVdXG4gICAgICB3aW5kb3cuaGlzdG9yeVttZXRob2ROYW1lXSA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdHJpZ2dlckxvY2F0aW9uQ2hhbmdlKHdpbmRvdy5sb2NhdGlvbiksIDApXG4gICAgICAgIHJldHVybiBvbGQuYXBwbHkod2luZG93Lmhpc3RvcnksIGFyZ3MpXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuIl19