const m = require('mithril') const Authentication = require('./authentication') const Header = require('./header') const Login = require('./page_login') const Browse = require('./page_browse') window.m = m var fileref = document.createElement("link"); fileref.setAttribute("rel", "stylesheet"); fileref.setAttribute("type", "text/css"); fileref.setAttribute("href", '/assets/app.css?v=2'); 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, } // 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=';