From ddd995e0be84a64759b02ad6f98111437d148191 Mon Sep 17 00:00:00 2001 From: Cliff Li <lic@student.ethz.ch> Date: Sat, 10 Feb 2018 19:00:29 +0100 Subject: [PATCH] Refactor layout.js --- src/views/layout.js | 61 +++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/src/views/layout.js b/src/views/layout.js index 4e6a7e66..fbe89b96 100644 --- a/src/views/layout.js +++ b/src/views/layout.js @@ -2,38 +2,39 @@ import { checkLogin, isLoggedIn, logout } from '../models/auth'; const m = require('mithril'); +const layoutLoggedOut = vnode => m('div', [ + m('nav', [ + m('a', { href: '/', oncreate: m.route.link }, 'AMIV'), + m('a', { href: '/events', oncreate: m.route.link }, 'Events'), + m('a', { href: '/studydocuments', oncreate: m.route.link }, 'Studienunterlagen'), + m('a', { href: '/jobs', oncreate: m.route.link }, 'Jobs'), + m('a', { href: '/login', oncreate: m.route.link }, 'Login'), + ]), + m('main', vnode.children), +]); + +const layoutLoggedIn = vnode => m('div', [ + m('nav', [ + m('a', { href: '/', oncreate: m.route.link }, 'AMIV'), + m('a', { href: '/events', oncreate: m.route.link }, 'Events'), + m('a', { href: '/studydocuments', oncreate: m.route.link }, 'Studienunterlagen'), + m('a', { href: '/jobs', oncreate: m.route.link }, 'Jobs'), + m('a', { href: '/profile', oncreate: m.route.link }, 'Profil'), + m('a', { + href: '/', + onclick: () => { + logout().then(() => { m.route.set('/'); }); + return false; + }, + oncreate: m.route.link, + }, 'Logout'), + ]), + m('main', vnode.children), +]); + module.exports = { oninit: checkLogin, view(vnode) { - if (isLoggedIn() === false) { - return m('div', [ - m('nav', [ - m('a', { href: '/', oncreate: m.route.link }, 'AMIV'), - m('a', { href: '/events', oncreate: m.route.link }, 'Events'), - m('a', { href: '/studydocuments', oncreate: m.route.link }, 'Studienunterlagen'), - m('a', { href: '/jobs', oncreate: m.route.link }, 'Jobs'), - m('a', { href: '/login', oncreate: m.route.link }, 'Login'), - ]), - m('main', vnode.children), - ]); - } - return m('div', [ - m('nav', [ - m('a', { href: '/', oncreate: m.route.link }, 'AMIV'), - m('a', { href: '/events', oncreate: m.route.link }, 'Events'), - m('a', { href: '/studydocuments', oncreate: m.route.link }, 'Studienunterlagen'), - m('a', { href: '/jobs', oncreate: m.route.link }, 'Jobs'), - m('a', { href: '/profile', oncreate: m.route.link }, 'Profil'), - m('a', { - href: '/', - onclick: () => { - logout().then(() => { m.route.set('/'); }); - return false; - }, - oncreate: m.route.link, - }, 'Logout'), - ]), - m('main', vnode.children), - ]); + return isLoggedIn() ? layoutLoggedIn(vnode) : layoutLoggedOut(vnode); }, }; -- GitLab