const m = require('mithril') const Authentication = require('./authentication') const Header = require('./header') const Login = require('./page_login') const Browse = require('./page_browse') const Upload = require('./page_upload') window.m = m let css = [ '/assets/app.css?v=2', '/assets/tempus-dominus.css', '/assets/fontawesome.css', ] for (let item of css) { var fileref = document.createElement("link"); fileref.setAttribute("rel", "stylesheet"); fileref.setAttribute("type", "text/css"); fileref.setAttribute("href", item); document.head.appendChild(fileref) } m.route.setOrig = m.route.set m.route.set = function(path, data, options){ m.route.setOrig(path, data, options) window.scrollTo(0, 0) } m.route.linkOrig = m.route.link m.route.link = function(vnode){ m.route.linkOrig(vnode) window.scrollTo(0, 0) } m.route.prefix = '' const allRoutes = { '/': Login, '/browse': Browse, '/upload': Upload, } // Wait until we finish checking avif support, some views render immediately and will ask for this immediately before the callback gets called. /* * imgsupport.js from leechy/imgsupport */ const AVIF = new Image(); AVIF.onload = AVIF.onerror = function () { window.supportsavif = (AVIF.height === 2) document.body.className = document.body.className + ' ' + (window.supportsavif ? 'avifsupport' : 'jpegonly') m.mount(document.getElementById('header'), Header) m.route(document.getElementById('main'), '/', allRoutes) } AVIF.src = 'data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAABAA0ABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgAPkgIaDQgMgkf8AAAQAAAr3A=';