added migrations for instant delivery
This commit is contained in:
86
node_modules/react-router/lib/locations/HistoryLocation.js
generated
vendored
Normal file
86
node_modules/react-router/lib/locations/HistoryLocation.js
generated
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
'use strict';
|
||||
|
||||
var LocationActions = require('../actions/LocationActions');
|
||||
var History = require('../History');
|
||||
|
||||
var _listeners = [];
|
||||
var _isListening = false;
|
||||
|
||||
function notifyChange(type) {
|
||||
var change = {
|
||||
path: HistoryLocation.getCurrentPath(),
|
||||
type: type
|
||||
};
|
||||
|
||||
_listeners.forEach(function (listener) {
|
||||
listener.call(HistoryLocation, change);
|
||||
});
|
||||
}
|
||||
|
||||
function onPopState(event) {
|
||||
if (event.state === undefined) {
|
||||
return;
|
||||
} // Ignore extraneous popstate events in WebKit.
|
||||
|
||||
notifyChange(LocationActions.POP);
|
||||
}
|
||||
|
||||
/**
|
||||
* A Location that uses HTML5 history.
|
||||
*/
|
||||
var HistoryLocation = {
|
||||
|
||||
addChangeListener: function addChangeListener(listener) {
|
||||
_listeners.push(listener);
|
||||
|
||||
if (!_isListening) {
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener('popstate', onPopState, false);
|
||||
} else {
|
||||
window.attachEvent('onpopstate', onPopState);
|
||||
}
|
||||
|
||||
_isListening = true;
|
||||
}
|
||||
},
|
||||
|
||||
removeChangeListener: function removeChangeListener(listener) {
|
||||
_listeners = _listeners.filter(function (l) {
|
||||
return l !== listener;
|
||||
});
|
||||
|
||||
if (_listeners.length === 0) {
|
||||
if (window.addEventListener) {
|
||||
window.removeEventListener('popstate', onPopState, false);
|
||||
} else {
|
||||
window.removeEvent('onpopstate', onPopState);
|
||||
}
|
||||
|
||||
_isListening = false;
|
||||
}
|
||||
},
|
||||
|
||||
push: function push(path) {
|
||||
window.history.pushState({ path: path }, '', path);
|
||||
History.length += 1;
|
||||
notifyChange(LocationActions.PUSH);
|
||||
},
|
||||
|
||||
replace: function replace(path) {
|
||||
window.history.replaceState({ path: path }, '', path);
|
||||
notifyChange(LocationActions.REPLACE);
|
||||
},
|
||||
|
||||
pop: History.back,
|
||||
|
||||
getCurrentPath: function getCurrentPath() {
|
||||
return decodeURI(window.location.pathname + window.location.search);
|
||||
},
|
||||
|
||||
toString: function toString() {
|
||||
return '<HistoryLocation>';
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
module.exports = HistoryLocation;
|
||||
Reference in New Issue
Block a user