diff --git a/src/components/room/widgets/RoomWidgetsView.tsx b/src/components/room/widgets/RoomWidgetsView.tsx
index 59e9cfbf..8f1bd8a6 100644
--- a/src/components/room/widgets/RoomWidgetsView.tsx
+++ b/src/components/room/widgets/RoomWidgetsView.tsx
@@ -10,7 +10,6 @@ import { UserChooserWidgetView } from './choosers/UserChooserWidgetView';
import { DoorbellWidgetView } from './doorbell/DoorbellWidgetView';
import { FriendRequestWidgetView } from './friend-request/FriendRequestWidgetView';
import { FurnitureWidgetsView } from './furniture/FurnitureWidgetsView';
-import { PetTrainingPanelWidgetView } from './pet-training/PetTrainingPanelWidgetView';
import { RoomFilterWordsWidgetView } from './room-filter-words/RoomFilterWordsWidgetView';
import { RoomThumbnailWidgetView } from './room-thumbnail/RoomThumbnailWidgetView';
import { RoomToolsWidgetView } from './room-tools/RoomToolsWidgetView';
@@ -166,7 +165,6 @@ export const RoomWidgetsView: FC<{}> = props =>
-
>
);
}
diff --git a/src/components/room/widgets/pet-training/PetTrainingPanelWidgetView.tsx b/src/components/room/widgets/avatar-info/AvatarInfoPetTrainingPanelView.tsx
similarity index 63%
rename from src/components/room/widgets/pet-training/PetTrainingPanelWidgetView.tsx
rename to src/components/room/widgets/avatar-info/AvatarInfoPetTrainingPanelView.tsx
index 22d95cc0..8e2e566c 100644
--- a/src/components/room/widgets/pet-training/PetTrainingPanelWidgetView.tsx
+++ b/src/components/room/widgets/avatar-info/AvatarInfoPetTrainingPanelView.tsx
@@ -1,26 +1,27 @@
-import { DesktopViewEvent, PetTrainingPanelMessageEvent } from '@nitrots/nitro-renderer';
-import { FC } from 'react';
-import { AvatarInfoPet, LocalizeText } from '../../../../api';
+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 { useAvatarInfoWidget, useMessageEvent, useRoom, useSessionInfo } from '../../../../hooks';
+import { useMessageEvent, useRoom, useSessionInfo } from '../../../../hooks';
-export const PetTrainingPanelWidgetView: FC<{}> = props =>
+export const AvatarInfoPetTrainingPanelView: FC<{}> = props =>
{
- const { avatarInfo = null, petTrainInformation = null, setPetTrainInformation = null } = useAvatarInfoWidget();
+ const [ petData, setPetData ] = useState(null);
+ const [ petTrainInformation, setPetTrainInformation ] = useState(null);
const { chatStyleId = 0 } = useSessionInfo();
const { roomSession = null } = useRoom();
- useMessageEvent(DesktopViewEvent, event =>
- {
- setPetTrainInformation(null);
- });
-
useMessageEvent(PetTrainingPanelMessageEvent, event =>
{
const parser = event.getParser();
if (!parser) return;
+ const roomPetData = roomSession.userDataManager.getPetData(parser.petId);
+
+ if(!roomPetData) return;
+
+ setPetData(roomPetData);
setPetTrainInformation(parser);
});
@@ -31,7 +32,7 @@ export const PetTrainingPanelWidgetView: FC<{}> = props =>
roomSession?.sendChatMessage(`${ petName } ${ commandName }`, chatStyleId);
}
- if(!petTrainInformation) return null;
+ if(!petData || !petTrainInformation) return null;
return (
@@ -40,15 +41,15 @@ export const PetTrainingPanelWidgetView: FC<{}> = props =>
-
+
- { (avatarInfo as AvatarInfoPet)?.name }
+ { petData.name }
{
(petTrainInformation.commands && petTrainInformation.commands.length > 0) && petTrainInformation.commands.map((command, index) =>
-
+
)
}
diff --git a/src/components/room/widgets/avatar-info/AvatarInfoWidgetView.tsx b/src/components/room/widgets/avatar-info/AvatarInfoWidgetView.tsx
index f70c2b0a..5a0acf1d 100644
--- a/src/components/room/widgets/avatar-info/AvatarInfoWidgetView.tsx
+++ b/src/components/room/widgets/avatar-info/AvatarInfoWidgetView.tsx
@@ -3,6 +3,7 @@ import { FC, useState } from 'react';
import { AvatarInfoFurni, AvatarInfoPet, AvatarInfoRentableBot, AvatarInfoUser, GetConfiguration, GetSessionDataManager, RoomWidgetUpdateRentableBotChatEvent } from '../../../../api';
import { Column } from '../../../../common';
import { useAvatarInfoWidget, useRoom, useRoomEngineEvent, useRoomSessionManagerEvent, useUiEvent } from '../../../../hooks';
+import { AvatarInfoPetTrainingPanelView } from './AvatarInfoPetTrainingPanelView';
import { AvatarInfoRentableBotChatView } from './AvatarInfoRentableBotChatView';
import { AvatarInfoUseProductConfirmView } from './AvatarInfoUseProductConfirmView';
import { AvatarInfoUseProductView } from './AvatarInfoUseProductView';
@@ -132,6 +133,7 @@ export const AvatarInfoWidgetView: FC<{}> = props =>
}) }
{ rentableBotChatEvent && setRentableBotChatEvent(null) }/> }
{ confirmingProduct && updateConfirmingProduct(null) } /> }
+
>
)
}
diff --git a/src/hooks/rooms/widgets/useAvatarInfoWidget.ts b/src/hooks/rooms/widgets/useAvatarInfoWidget.ts
index afe46658..9545362a 100644
--- a/src/hooks/rooms/widgets/useAvatarInfoWidget.ts
+++ b/src/hooks/rooms/widgets/useAvatarInfoWidget.ts
@@ -1,4 +1,4 @@
-import { PetTrainingMessageParser, RoomEngineObjectEvent, RoomEngineUseProductEvent, RoomObjectCategory, RoomObjectType, RoomObjectVariable, RoomSessionPetInfoUpdateEvent, RoomSessionPetStatusUpdateEvent, RoomSessionUserDataUpdateEvent } from '@nitrots/nitro-renderer';
+import { RoomEngineObjectEvent, RoomEngineUseProductEvent, RoomObjectCategory, RoomObjectType, RoomObjectVariable, RoomSessionPetInfoUpdateEvent, RoomSessionPetStatusUpdateEvent, RoomSessionUserDataUpdateEvent } from '@nitrots/nitro-renderer';
import { useEffect, useState } from 'react';
import { AvatarInfoFurni, AvatarInfoName, AvatarInfoPet, AvatarInfoRentableBot, AvatarInfoUser, AvatarInfoUtilities, CanManipulateFurniture, FurniCategory, GetRoomEngine, GetSessionDataManager, IAvatarInfo, IsOwnerOfFurniture, RoomWidgetUpdateRoomObjectEvent, UseProductItem } from '../../../api';
import { useRoomEngineEvent, useRoomSessionManagerEvent, useUiEvent } from '../../events';
@@ -14,7 +14,6 @@ const useAvatarInfoWidgetState = () =>
const [ nameBubbles, setNameBubbles ] = useState([]);
const [ productBubbles, setProductBubbles ] = useState([]);
const [ confirmingProduct, setConfirmingProduct ] = useState(null);
- const [ petTrainInformation, setPetTrainInformation ] = useState(null);
const [ pendingPetId, setPendingPetId ] = useState(-1);
const [ isDecorating, setIsDecorating ] = useState(false);
const { friends = [] } = useFriends();
@@ -66,7 +65,6 @@ const useAvatarInfoWidgetState = () =>
const getObjectInfo = (objectId: number, category: number) =>
{
let info: IAvatarInfo = null;
- setPetTrainInformation(null);
switch(category)
{
@@ -274,7 +272,6 @@ const useAvatarInfoWidgetState = () =>
useObjectDeselectedEvent(event =>
{
setAvatarInfo(null);
- setPetTrainInformation(null);
setProductBubbles([]);
});
@@ -352,7 +349,7 @@ const useAvatarInfoWidgetState = () =>
roomSession.isDecorating = isDecorating;
}, [ roomSession, isDecorating ]);
- return { avatarInfo, setAvatarInfo, activeNameBubble, setActiveNameBubble, nameBubbles, productBubbles, confirmingProduct, petTrainInformation, setPetTrainInformation, isDecorating, setIsDecorating, removeNameBubble, removeProductBubble, updateConfirmingProduct, getObjectName };
+ return { avatarInfo, setAvatarInfo, activeNameBubble, setActiveNameBubble, nameBubbles, productBubbles, confirmingProduct, isDecorating, setIsDecorating, removeNameBubble, removeProductBubble, updateConfirmingProduct, getObjectName };
}
export const useAvatarInfoWidget = useAvatarInfoWidgetState;