import { IRoomUserData, PetTrainingMessageParser, PetTrainingPanelMessageEvent } from '@nitrots/nitro-renderer'; import { FC, useState } from 'react'; import { LocalizeText } from '../../../../api'; import { Button, Column, Flex, Grid, LayoutPetImageView, NitroCardContentView, NitroCardHeaderView, NitroCardView, Text } from '../../../../common'; import { useMessageEvent, useRoom, useSessionInfo } from '../../../../hooks'; export const AvatarInfoPetTrainingPanelView: FC<{}> = props => { const [ petData, setPetData ] = useState(null); const [ petTrainInformation, setPetTrainInformation ] = useState(null); const { chatStyleId = 0 } = useSessionInfo(); const { roomSession = null } = useRoom(); useMessageEvent(PetTrainingPanelMessageEvent, event => { const parser = event.getParser(); if(!parser) return; const roomPetData = roomSession?.userDataManager?.getPetData(parser.petId); if(!roomPetData) return; setPetData(roomPetData); setPetTrainInformation(parser); }); const processPetAction = (petName: string, commandName: string) => { if(!petName || !commandName) return; roomSession?.sendChatMessage(`${ petName } ${ commandName }`, chatStyleId); }; if(!petData || !petTrainInformation) return null; return ( setPetTrainInformation(null) } /> { petData.name } { (petTrainInformation.commands && petTrainInformation.commands.length > 0) && petTrainInformation.commands.map((command, index) => ) } ); };