-
Notifications
You must be signed in to change notification settings - Fork 0
/
identity-button.tsx
27 lines (25 loc) · 1.09 KB
/
identity-button.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import { React, ko_if, ko_ifnot, ko_foreach } from "kjsx";
import { Identity } from './identity';
export default class IdentityButtonViewModel<TKey> implements JSX.ElementClass {
props: { identity: Identity<TKey> }
render() {
const logged = this.props.identity.logged;
const account = this.props.identity.account;
const menu = this.props.identity.menu;
if (!menu) return <div></div>;
const login = () => this.props.identity.goToLogin(() =>this.props.identity.app.hidePopin());
const toggle = () => menu.collapsed(!menu.collapsed());
return <div>{ ko_if(logged, () =>
<div>
<button click={toggle}>{account().userName}</button>
{ ko_ifnot(menu.collapsed, () =>
<ul> {
ko_foreach(menu.menu, m =>
<li visible={m.visible}></li>)}
</ul>)}
</div>) }
{ ko_ifnot(logged, () =>
<button click={login}>Login</button>
)} </div>;
}
}