UNPKG

soma.js

Version:

soma.js is a javascript framework created to build scalable and maintainable applications.

64 lines (47 loc) 1.55 kB
;(function(sniply, undefined) { 'use strict'; // package sniply.views = sniply.views || {}; // template utils soma.template.helpers({isOnline: navigator.onLine}); var Header = function(template, scope, dispatcher, userModel) { var list = ['list', 'manage']; var current = list[0]; dispatcher.addEventListener(sniply.events.RENDER_NAV, render); dispatcher.addEventListener(sniply.events.SELECT_NAV, function(event) { current = event.params; for (var i = 0, l = list.length; i < l; i++) { $('.' + list[i])[ list[i] === current ? 'removeClass' : 'addClass' ]('hidden'); $('.nav-' + list[i])[ list[i] === current ? 'addClass' : 'removeClass' ]('hidden'); } }); scope.isSignedIn = function() { return userModel.isSignedIn(); }; scope.logout = function() { dispatcher.dispatch(sniply.events.LOGOUT); render(); }; scope.showList = function(event, id) { dispatcher.dispatch(sniply.events.SELECT_NAV, 'list'); }; scope.showManage = function(event, id) { dispatcher.dispatch(sniply.events.SELECT_NAV, 'manage'); dispatcher.dispatch(sniply.events.ADD_SNIPPET); }; scope.signin = function() { // stay in the same function to avoid popup blocker userModel.signin(); }; scope.getUserAvatar = function(user) { return user && navigator.onLine ? user.github.avatar_url : ''; }; function render() { scope.user = userModel.getUser(); template.render(); } render(); }; // exports sniply.views.Header = Header; })(window.sniply = window.sniply || {});