Added routes/novigation/notfound
This commit is contained in:
55
src/modules/RouteController.js
Normal file
55
src/modules/RouteController.js
Normal file
@@ -0,0 +1,55 @@
|
||||
import Views from '../templates/Views'
|
||||
|
||||
export default class RouteController {
|
||||
|
||||
constructor () {
|
||||
document.addEventListener('DOMContentLoaded', e => {
|
||||
this._navigation()
|
||||
this._history()
|
||||
})
|
||||
}
|
||||
|
||||
get routes () {
|
||||
return window.env.routes
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {*}
|
||||
*/
|
||||
get navbar () {
|
||||
return document.getElementById(window.env.querySelectors.navTabs.slice(1))
|
||||
}
|
||||
|
||||
get page404(){
|
||||
document.body.innerHTML = Views.templates.notFound
|
||||
setTimeout( () => {
|
||||
window.location.assign('/')
|
||||
}, 5000)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_navigation(){
|
||||
|
||||
if( Object.keys(this.routes).filter( path => window.location.pathname === path ).length === 0 ){
|
||||
this.page404
|
||||
} else{
|
||||
document.querySelector( `a[href='${window.location.pathname}']` ).click()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
_history(){
|
||||
window.addEventListener('popstate', event => {
|
||||
try {
|
||||
document.querySelector('.uk-active').classList.remove('uk-active')
|
||||
document.querySelector(window.env.querySelectors.navTabs + ` a[href='${event.target.location.pathname}']`).closest('.nav-tab').classList.add('uk-active')
|
||||
} catch (e) {}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user