generator-confit
Version:
Yeoman generator for creating the development process, tools and a sample project for current-generation web applications
32 lines (26 loc) • 849 B
JavaScript
;
let win = window;
win.onpopstate = stateChangeHandler;
let demoModule = {
gotoPage: gotoPage,
setWindow: function(newWin) { // Allow the window object to be mocked
win = newWin;
win.onpopstate = stateChangeHandler;
}
};
// Basic routing functions, in the absence of a "proper" router
function gotoPage(pageName, addToHistory) {
// TODO: Use config paths here instead of 'modules/demoModule'
win.document.getElementById('content').innerHTML = win[pageName.replace('#/', '')];
if (addToHistory !== false) {
var title = pageName;
var url = '#/' + pageName;
win.history.pushState({ isPushState: true, url: url }, title, url);
}
}
function stateChangeHandler(event) {
if (event.state && event.state.isPushState) {
demoModule.gotoPage(event.state.url, false);
}
};
export default demoModule;