nitro-react/src/views/toolbar/ToolbarView.tsx

65 lines
2.9 KiB
TypeScript
Raw Normal View History

2021-04-14 23:47:12 +02:00
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';
2021-04-14 21:12:16 +02:00
import { useState } from 'react';
2021-04-14 23:47:12 +02:00
import { CreateMessageHook } from '../../hooks/messages/message-event';
import { AvatarImageView } from '../avatar-image/AvatarImageView';
2021-04-14 20:24:24 +02:00
import { ToolbarViewProps } from './ToolbarView.types';
export function ToolbarView(props: ToolbarViewProps): JSX.Element
{
2021-04-14 21:12:16 +02:00
const [ isInRoom, setIsInRoom ] = useState(false);
2021-04-14 23:47:12 +02:00
const [ userInfo, setUserInfo ] = useState<UserInfoDataParser>(null);
2021-04-14 21:12:16 +02:00
const unseenInventoryCount = 0;
const unseenFriendListCount = 0;
const unseenAchievementsCount = 0;
2021-04-14 23:47:12 +02:00
const onUserInfoEvent = (event: UserInfoEvent) =>
{
const parser = event.getParser();
setUserInfo(parser.userInfo);
};
CreateMessageHook(new UserInfoEvent(onUserInfoEvent));
2021-04-14 20:24:24 +02:00
return (
2021-04-14 21:12:16 +02:00
<div className="nitro-toolbar">
<div className="card p-0 overflow-hidden">
<ul className="list-group list-group-horizontal p-1">
{ isInRoom && (
<li className="list-group-item">
<i className="icon icon-hotelview icon-nitro-light"></i>
</li>) }
{ !isInRoom && (
<li className="list-group-item">
<i className="icon icon-house"></i>
</li>) }
<li className="list-group-item">
<i className="icon icon-rooms"></i>
</li>
<li className="list-group-item">
<i className="icon icon-catalog"></i>
</li>
<li className="list-group-item">
<i className="icon icon-inventory"></i>
{ (unseenInventoryCount > 0) && (
<div className="position-absolute bg-danger px-1 py-0 rounded shadow count">{ unseenInventoryCount }</div>) }
</li>
<li className="list-group-item">
<i className="icon icon-friendall"></i>
{ (unseenFriendListCount > 0) && (
<div className="position-absolute bg-danger px-1 py-0 rounded shadow count">{ unseenFriendListCount }</div>) }
</li>
<li className="list-group-item avatar-image">
2021-04-14 23:47:12 +02:00
{ userInfo && <AvatarImageView figure={ userInfo.figure } direction={ 2 } headOnly={ true } /> }
2021-04-14 21:12:16 +02:00
{ (unseenAchievementsCount > 0) && (
<div className="position-absolute bg-danger px-1 py-0 rounded shadow count">{ unseenAchievementsCount }</div>) }
</li>
</ul>
</div>
</div>
2021-04-14 20:24:24 +02:00
);
}