import { RoomInfoComposer } from 'nitro-renderer'; import { UserInfoEvent } from 'nitro-renderer/src/nitro/communication/messages/incoming/user/data/UserInfoEvent'; import { UserInfoDataParser } from 'nitro-renderer/src/nitro/communication/messages/parser/user/data/UserInfoDataParser'; import { KeyboardEvent, MouseEvent, useState } from 'react'; import { NavigatorEvent } from '../../events'; import { dispatchUiEvent } from '../../hooks/events/ui/ui-event'; import { CreateMessageHook, SendMessageHook } from '../../hooks/messages/message-event'; import { AvatarImageView } from '../avatar-image/AvatarImageView'; import { ToolbarViewItems, ToolbarViewProps } from './ToolbarView.types'; export function ToolbarView(props: ToolbarViewProps): JSX.Element { const { isInRoom } = props; const [ userInfo, setUserInfo ] = useState(null); const unseenInventoryCount = 0; const unseenFriendListCount = 0; const unseenAchievementsCount = 0; const onUserInfoEvent = (event: UserInfoEvent) => { const parser = event.getParser(); setUserInfo(parser.userInfo); }; function onKeyUp(event: KeyboardEvent) { if(event.key !== "Enter") return; const roomId = (event.target as HTMLInputElement).value; if(roomId.length === 0) return; SendMessageHook(new RoomInfoComposer(parseInt(roomId), false, true)); } function handleToolbarItemClick(event: MouseEvent, item: string): void { event.preventDefault(); switch(item) { case ToolbarViewItems.NAVIGATOR_ITEM: dispatchUiEvent(new NavigatorEvent(NavigatorEvent.TOGGLE_NAVIGATOR)); return; } } CreateMessageHook(new UserInfoEvent(onUserInfoEvent)); return ( <>
    { isInRoom && (
  • ) } { !isInRoom && (
  • ) }
  • handleToolbarItemClick(event, ToolbarViewItems.NAVIGATOR_ITEM) }>
  • { (unseenInventoryCount > 0) && (
    { unseenInventoryCount }
    ) }
  • { (unseenFriendListCount > 0) && (
    { unseenFriendListCount }
    ) }
  • { userInfo && } { (unseenAchievementsCount > 0) && (
    { unseenAchievementsCount }
    ) }
); }