import BaseComponent from './basic-component'; import { alias } from '@ember/object/computed'; import { inject as service } from '@ember/service'; export default BaseComponent.extend({ // elementId: 'navbar', classNames: ['navbar', 'navbar-default', 'navbar-collapse'], user: alias('ajax.user'), websocket: service(), didReceiveAttrs() { const me = this; const user = me.get('user'); if (!user) { console.info('No user found in session storage, try to load from server.'); me.ajax.doGet(false, 'auth/info', (u) => { me.set('user', u); me.get('websocket').connect(); }); } }, actions: { logout() { let me = this; me.ajax.doPost(false, 'auth/logout', () => { me.get('websocket').disconnect(); me.set('user', null); me.get('message').alert('Sign out successfully'); me.get('router').transitionTo('login'); }); } } });