43 lines
1002 B
TypeScript
43 lines
1002 B
TypeScript
'use strict'
|
|
import * as React from 'react'
|
|
|
|
export interface MenuBarProps {
|
|
isLoggedIn: boolean
|
|
};
|
|
|
|
export interface MenuItem {
|
|
onClick: () => void
|
|
text: string
|
|
};
|
|
|
|
export default function MenuBar (props: MenuBarProps): JSX.Element {
|
|
const isLoggedIn = props.isLoggedIn
|
|
const menuItems: MenuItem[] = []
|
|
fillMenu(menuItems, isLoggedIn)
|
|
return (
|
|
<nav className="menu-bar">
|
|
{
|
|
menuItems.map((item, i) => <a key={i} href="#" onClick={item.onClick}>{item.text}</a>)
|
|
}
|
|
</nav>
|
|
)
|
|
}
|
|
|
|
function fillMenu (menuItems: MenuItem[], isLoggedIn: boolean): void {
|
|
if (isLoggedIn) {
|
|
menuItems.push({
|
|
text: 'Cerrar Sesión',
|
|
onClick: () => { alert('logout') }
|
|
})
|
|
return
|
|
}
|
|
menuItems.push({
|
|
text: 'Regístrate',
|
|
onClick: () => { alert('register') }
|
|
})
|
|
menuItems.push({
|
|
text: 'Inicia Sesión',
|
|
onClick: () => { alert('login') }
|
|
})
|
|
}
|