updated packet names

This commit is contained in:
dank074 2021-08-25 16:20:32 -05:00
parent f0af5c8ead
commit d2f7f26dec
20 changed files with 78 additions and 77 deletions

View File

@ -1,7 +1,7 @@
import { CatalogProductOfferData, FurnitureType, IFurnitureData } from '@nitrots/nitro-renderer';
import { CatalogPageMessageProductData, FurnitureType, IFurnitureData } from '@nitrots/nitro-renderer';
import { GetSessionDataManager } from './GetSessionDataManager';
export function GetFurnitureDataForProductOffer(offer: CatalogProductOfferData): IFurnitureData
export function GetFurnitureDataForProductOffer(offer: CatalogPageMessageProductData): IFurnitureData
{
if(!offer) return null;

View File

@ -1,18 +1,18 @@
import { CatalogPurchaseData } from '@nitrots/nitro-renderer';
import { PurchaseOKMessageOfferData } from '@nitrots/nitro-renderer';
import { CatalogEvent } from './CatalogEvent';
export class CatalogPurchasedEvent extends CatalogEvent
{
private _purchase: CatalogPurchaseData;
private _purchase: PurchaseOKMessageOfferData;
constructor(purchase: CatalogPurchaseData)
constructor(purchase: PurchaseOKMessageOfferData)
{
super(CatalogEvent.PURCHASE_SUCCESS);
this._purchase = purchase;
}
public get purchase(): CatalogPurchaseData
public get purchase(): PurchaseOKMessageOfferData
{
return this._purchase;
}

View File

@ -1,4 +1,4 @@
import { AvatarDirectionAngle, AvatarEditorFigureCategory, FigureSetIdsMessageEvent, UserFigureComposer, UserWardrobePageComposer, UserWardrobePageEvent } from '@nitrots/nitro-renderer';
import { AvatarDirectionAngle, AvatarEditorFigureCategory, FigureSetIdsMessageEvent, GetWardrobeMessageComposer, UserFigureComposer, UserWardrobePageEvent } from '@nitrots/nitro-renderer';
import { FC, useCallback, useEffect, useState } from 'react';
import { GetClubMemberLevel, GetSessionDataManager, LocalizeText } from '../../api';
import { AvatarEditorEvent } from '../../events/avatar-editor';
@ -208,7 +208,7 @@ export const AvatarEditorView: FC<AvatarEditorViewProps> = props =>
if(!isWardrobeVisible) return;
setActiveCategory(null);
SendMessageHook(new UserWardrobePageComposer());
SendMessageHook(new GetWardrobeMessageComposer());
}, [ isWardrobeVisible ]);
useEffect(() =>

View File

@ -1,4 +1,4 @@
import { UserWardrobeSaveComposer } from '@nitrots/nitro-renderer';
import { SaveWardrobeOutfitMessageComposer } from '@nitrots/nitro-renderer';
import { FC, useCallback, useMemo } from 'react';
import { Button } from 'react-bootstrap';
import { SendMessageHook } from '../../../../hooks';
@ -33,7 +33,7 @@ export const AvatarEditorWardrobeView: FC<AvatarEditorWardrobeViewProps> = props
newFigures[index] = [ figure, gender ];
setSavedFigures(newFigures);
SendMessageHook(new UserWardrobeSaveComposer((index + 1), figure, gender));
SendMessageHook(new SaveWardrobeOutfitMessageComposer((index + 1), figure, gender));
}, [ figureData, savedFigures, setSavedFigures ]);
const figures = useMemo(() =>

View File

@ -1,4 +1,5 @@
import { CatalogApproveNameResultEvent, CatalogClubEvent, CatalogGiftConfigurationEvent, CatalogGroupsEvent, CatalogPageEvent, CatalogPagesEvent, CatalogPurchaseEvent, CatalogPurchaseFailedEvent, CatalogPurchaseUnavailableEvent, CatalogSearchEvent, CatalogSoldOutEvent, CatalogUpdatedEvent, SellablePetPalettesEvent, UserSubscriptionEvent } from '@nitrots/nitro-renderer';
import { ApproveNameMessageEvent, CatalogPageMessageEvent, CatalogPagesListEvent, CatalogPublishedMessageEvent, GiftWrappingConfigurationEvent, HabboClubOffersMessageEvent, LimitedEditionSoldOutEvent, ProductOfferEvent, PurchaseErrorMessageEvent, PurchaseNotAllowedMessageEvent, PurchaseOKMessageEvent, SellablePetPalettesMessageEvent, UserSubscriptionEvent } from '@nitrots/nitro-renderer';
import { GuildMembershipsMessageEvent } from '@nitrots/nitro-renderer/src/nitro/communication/messages/incoming/user/GuildMembershipsMessageEvent';
import { FC, useCallback } from 'react';
import { CatalogNameResultEvent, CatalogPurchaseFailureEvent } from '../../events';
import { CatalogPurchasedEvent } from '../../events/catalog/CatalogPurchasedEvent';
@ -15,7 +16,7 @@ export const CatalogMessageHandler: FC<CatalogMessageHandlerProps> = props =>
{
const { catalogState = null, dispatchCatalogState = null } = useCatalogContext();
const onCatalogPagesEvent = useCallback((event: CatalogPagesEvent) =>
const onCatalogPagesEvent = useCallback((event: CatalogPagesListEvent) =>
{
const parser = event.getParser();
@ -27,7 +28,7 @@ export const CatalogMessageHandler: FC<CatalogMessageHandlerProps> = props =>
});
}, [ dispatchCatalogState ]);
const onCatalogPageEvent = useCallback((event: CatalogPageEvent) =>
const onCatalogPageEvent = useCallback((event: CatalogPageMessageEvent) =>
{
const parser = event.getParser();
@ -39,33 +40,33 @@ export const CatalogMessageHandler: FC<CatalogMessageHandlerProps> = props =>
});
}, [ dispatchCatalogState ]);
const onCatalogPurchaseEvent = useCallback((event: CatalogPurchaseEvent) =>
const onCatalogPurchaseEvent = useCallback((event: PurchaseOKMessageEvent) =>
{
const parser = event.getParser();
dispatchUiEvent(new CatalogPurchasedEvent(parser.offer));
}, []);
const onCatalogPurchaseFailedEvent = useCallback((event: CatalogPurchaseFailedEvent) =>
const onCatalogPurchaseFailedEvent = useCallback((event: PurchaseErrorMessageEvent) =>
{
const parser = event.getParser();
dispatchUiEvent(new CatalogPurchaseFailureEvent(parser.code));
}, []);
const onCatalogPurchaseUnavailableEvent = useCallback((event: CatalogPurchaseUnavailableEvent) =>
const onCatalogPurchaseUnavailableEvent = useCallback((event: PurchaseNotAllowedMessageEvent) =>
{
const parser = event.getParser();
}, []);
const onCatalogSoldOutEvent = useCallback((event: CatalogSoldOutEvent) =>
const onCatalogSoldOutEvent = useCallback((event: LimitedEditionSoldOutEvent) =>
{
const parser = event.getParser();
dispatchUiEvent(new CatalogPurchaseSoldOutEvent());
}, []);
const onCatalogSearchEvent = useCallback((event: CatalogSearchEvent) =>
const onCatalogSearchEvent = useCallback((event: ProductOfferEvent) =>
{
const parser = event.getParser();
@ -77,7 +78,7 @@ export const CatalogMessageHandler: FC<CatalogMessageHandlerProps> = props =>
});
}, [ dispatchCatalogState ]);
const onSellablePetPalettesEvent = useCallback((event: SellablePetPalettesEvent) =>
const onSellablePetPalettesEvent = useCallback((event: SellablePetPalettesMessageEvent) =>
{
const parser = event.getParser();
const petPalette = new CatalogPetPalette(parser.productCode, parser.palettes.slice());
@ -88,14 +89,14 @@ export const CatalogMessageHandler: FC<CatalogMessageHandlerProps> = props =>
});
}, [ dispatchCatalogState ]);
const onCatalogApproveNameResultEvent = useCallback((event: CatalogApproveNameResultEvent) =>
const onCatalogApproveNameResultEvent = useCallback((event: ApproveNameMessageEvent) =>
{
const parser = event.getParser();
dispatchUiEvent(new CatalogNameResultEvent(parser.result, parser.validationInfo));
}, []);
const onCatalogClubEvent = useCallback((event: CatalogClubEvent) =>
const onCatalogClubEvent = useCallback((event: HabboClubOffersMessageEvent) =>
{
const parser = event.getParser();
@ -107,7 +108,7 @@ export const CatalogMessageHandler: FC<CatalogMessageHandlerProps> = props =>
});
}, [ dispatchCatalogState ]);
const onCatalogGroupsEvent = useCallback((event: CatalogGroupsEvent) =>
const onCatalogGroupsEvent = useCallback((event: GuildMembershipsMessageEvent) =>
{
const parser = event.getParser();
@ -137,7 +138,7 @@ export const CatalogMessageHandler: FC<CatalogMessageHandlerProps> = props =>
});
}, [ dispatchCatalogState ]);
const onCatalogUpdatedEvent = useCallback((event: CatalogUpdatedEvent) =>
const onCatalogUpdatedEvent = useCallback((event: CatalogPublishedMessageEvent) =>
{
dispatchCatalogState({
type: CatalogActions.RESET_STATE,
@ -145,7 +146,7 @@ export const CatalogMessageHandler: FC<CatalogMessageHandlerProps> = props =>
});
}, [ dispatchCatalogState ]);
const onCatalogGiftConfigurationEvent = useCallback((event: CatalogGiftConfigurationEvent) =>
const onCatalogGiftConfigurationEvent = useCallback((event: GiftWrappingConfigurationEvent) =>
{
const parser = event.getParser();
@ -157,20 +158,20 @@ export const CatalogMessageHandler: FC<CatalogMessageHandlerProps> = props =>
});
}, [ dispatchCatalogState ]);
CreateMessageHook(CatalogPagesEvent, onCatalogPagesEvent);
CreateMessageHook(CatalogPageEvent, onCatalogPageEvent);
CreateMessageHook(CatalogPurchaseEvent, onCatalogPurchaseEvent);
CreateMessageHook(CatalogPurchaseFailedEvent, onCatalogPurchaseFailedEvent);
CreateMessageHook(CatalogPurchaseUnavailableEvent, onCatalogPurchaseUnavailableEvent);
CreateMessageHook(CatalogSoldOutEvent, onCatalogSoldOutEvent);
CreateMessageHook(CatalogSearchEvent, onCatalogSearchEvent);
CreateMessageHook(CatalogGroupsEvent, onCatalogGroupsEvent);
CreateMessageHook(SellablePetPalettesEvent, onSellablePetPalettesEvent);
CreateMessageHook(CatalogApproveNameResultEvent, onCatalogApproveNameResultEvent);
CreateMessageHook(CatalogClubEvent, onCatalogClubEvent);
CreateMessageHook(CatalogPagesListEvent, onCatalogPagesEvent);
CreateMessageHook(CatalogPageMessageEvent, onCatalogPageEvent);
CreateMessageHook(PurchaseOKMessageEvent, onCatalogPurchaseEvent);
CreateMessageHook(PurchaseErrorMessageEvent, onCatalogPurchaseFailedEvent);
CreateMessageHook(PurchaseNotAllowedMessageEvent, onCatalogPurchaseUnavailableEvent);
CreateMessageHook(LimitedEditionSoldOutEvent, onCatalogSoldOutEvent);
CreateMessageHook(ProductOfferEvent, onCatalogSearchEvent);
CreateMessageHook(GuildMembershipsMessageEvent, onCatalogGroupsEvent);
CreateMessageHook(SellablePetPalettesMessageEvent, onSellablePetPalettesEvent);
CreateMessageHook(ApproveNameMessageEvent, onCatalogApproveNameResultEvent);
CreateMessageHook(HabboClubOffersMessageEvent, onCatalogClubEvent);
CreateMessageHook(UserSubscriptionEvent, onUserSubscriptionEvent);
CreateMessageHook(CatalogUpdatedEvent, onCatalogUpdatedEvent);
CreateMessageHook(CatalogGiftConfigurationEvent, onCatalogGiftConfigurationEvent);
CreateMessageHook(CatalogPublishedMessageEvent, onCatalogUpdatedEvent);
CreateMessageHook(GiftWrappingConfigurationEvent, onCatalogGiftConfigurationEvent);
return null;
}

View File

@ -1,4 +1,4 @@
import { CatalogPageOfferData, ICatalogPageData, ICatalogPageParser, IFurnitureData, SellablePetPaletteData } from '@nitrots/nitro-renderer';
import { CatalogPageMessageOfferData, ICatalogPageData, ICatalogPageParser, IFurnitureData, SellablePetPaletteData } from '@nitrots/nitro-renderer';
import { GetConfiguration, GetProductDataForLocalization, GetRoomEngine } from '../../../api';
export interface ICatalogOffers
@ -12,7 +12,7 @@ export interface ICatalogSearchResult
furniture: IFurnitureData[];
}
export function GetOfferName(offer: CatalogPageOfferData): string
export function GetOfferName(offer: CatalogPageMessageOfferData): string
{
const productData = GetProductDataForLocalization(offer.localizationId);

View File

@ -1,4 +1,4 @@
import { CatalogGiftConfigurationParser } from '@nitrots/nitro-renderer';
import { GiftWrappingConfigurationParser } from '@nitrots/nitro-renderer';
export class GiftWrappingConfiguration
{
@ -9,7 +9,7 @@ export class GiftWrappingConfiguration
private _ribbonTypes: number[] = null;
private _defaultStuffTypes: number[] = null;
constructor(parser: CatalogGiftConfigurationParser)
constructor(parser: GiftWrappingConfigurationParser)
{
this._isEnabled = parser.isEnabled;
this._price = parser.price;

View File

@ -1,4 +1,4 @@
import { CatalogClubOfferData, CatalogGiftConfigurationParser, CatalogGroupData, CatalogPageOfferData, ICatalogPageData, ICatalogPageParser } from '@nitrots/nitro-renderer';
import { CatalogGroupData, CatalogPageMessageOfferData, ClubOfferData, GiftWrappingConfigurationParser, ICatalogPageData, ICatalogPageParser } from '@nitrots/nitro-renderer';
import { Reducer } from 'react';
import { CatalogPetPalette } from '../common/CatalogPetPalette';
import { ICatalogOffers, ICatalogSearchResult, SetOffersToNodes } from '../common/CatalogUtilities';
@ -11,11 +11,11 @@ export interface ICatalogState
offerRoot: ICatalogOffers;
currentTab: ICatalogPageData;
pageParser: ICatalogPageParser;
activeOffer: CatalogPageOfferData;
activeOffer: CatalogPageMessageOfferData;
searchResult: ICatalogSearchResult;
groups: CatalogGroupData[];
petPalettes: CatalogPetPalette[];
clubOffers: CatalogClubOfferData[];
clubOffers: ClubOfferData[];
subscriptionInfo: SubscriptionInfo;
giftConfiguration: GiftWrappingConfiguration;
}
@ -28,13 +28,13 @@ export interface ICatalogAction
offerRoot?: ICatalogOffers;
currentTab?: ICatalogPageData;
pageParser?: ICatalogPageParser;
activeOffer?: CatalogPageOfferData;
activeOffer?: CatalogPageMessageOfferData;
searchResult?: ICatalogSearchResult;
groups?: CatalogGroupData[];
petPalette?: CatalogPetPalette;
clubOffers?: CatalogClubOfferData[];
clubOffers?: ClubOfferData[];
subscriptionInfo?: SubscriptionInfo;
giftConfiguration?: CatalogGiftConfigurationParser;
giftConfiguration?: GiftWrappingConfigurationParser;
}
}

View File

@ -1,4 +1,4 @@
import { CatalogFrontPageItem } from '@nitrots/nitro-renderer';
import { FrontPageItem } from '@nitrots/nitro-renderer';
import { FC, useCallback, useMemo } from 'react';
import { CreateLinkEvent, GetConfiguration } from '../../../../../../api';
import { CatalogLayoutFrontpage4ViewProps } from './CatalogLayoutFrontpage4View.types';
@ -12,14 +12,14 @@ export const CatalogLayoutFrontpage4View: FC<CatalogLayoutFrontpage4ViewProps> =
return GetConfiguration<string>('image.library.url');
}, []);
const selectItem = useCallback((item: CatalogFrontPageItem) =>
const selectItem = useCallback((item: FrontPageItem) =>
{
switch(item.type)
{
case CatalogFrontPageItem.ITEM_CATALOGUE_PAGE:
case FrontPageItem.ITEM_CATALOGUE_PAGE:
CreateLinkEvent(`catalog/open/${ item.catalogPageLocation }`);
return;
case CatalogFrontPageItem.ITEM_PRODUCT_OFFER:
case FrontPageItem.ITEM_PRODUCT_OFFER:
CreateLinkEvent(`catalog/open/${ item.productOfferId }`);
return;
}

View File

@ -1,8 +1,8 @@
import { CatalogPageOfferData } from '@nitrots/nitro-renderer';
import { CatalogPageMessageOfferData } from '@nitrots/nitro-renderer';
export interface CatalogLayoutPetPurchaseViewProps
{
offer: CatalogPageOfferData;
offer: CatalogPageMessageOfferData;
pageId: number;
extra?: string;
}

View File

@ -1,4 +1,4 @@
import { CatalogPageOfferData, IFurnitureData } from '@nitrots/nitro-renderer';
import { CatalogPageMessageOfferData, IFurnitureData } from '@nitrots/nitro-renderer';
import { FC, useEffect, useState } from 'react';
import { GetSessionDataManager, LocalizeText } from '../../../../../../api';
import { GetCatalogPageImage, GetCatalogPageText, GetOfferName } from '../../../../common/CatalogUtilities';
@ -14,7 +14,7 @@ export const CatalogLayoutSpacesView: FC<CatalogLayoutSpacesViewProps> = props =
const { roomPreviewer = null, pageParser = null } = props;
const { catalogState } = useCatalogContext();
const { activeOffer = null } = catalogState;
const [ groups, setGroups ] = useState<CatalogPageOfferData[][]>([]);
const [ groups, setGroups ] = useState<CatalogPageMessageOfferData[][]>([]);
const [ activeGroupIndex, setActiveGroupIndex ] = useState(-1);
const groupNames = [ 'floors', 'walls', 'views' ];
@ -23,7 +23,7 @@ export const CatalogLayoutSpacesView: FC<CatalogLayoutSpacesViewProps> = props =
{
if(!pageParser) return;
const groupedOffers: CatalogPageOfferData[][] = [ [], [], [] ];
const groupedOffers: CatalogPageMessageOfferData[][] = [ [], [], [] ];
for(const offer of pageParser.offers)
{

View File

@ -1,4 +1,4 @@
import { CatalogClubOfferData, CatalogPurchaseComposer, CatalogRequestVipOffersComposer } from '@nitrots/nitro-renderer';
import { CatalogPurchaseComposer, CatalogRequestVipOffersComposer, ClubOfferData } from '@nitrots/nitro-renderer';
import { FC, useCallback, useEffect, useMemo, useState } from 'react';
import { Button } from 'react-bootstrap';
import { LocalizeText } from '../../../../../../api';
@ -15,9 +15,9 @@ export const CatalogLayoutVipBuyView: FC<CatalogLayoutVipBuyViewProps> = props =
{
const { catalogState = null } = useCatalogContext();
const { pageParser = null, clubOffers = null, subscriptionInfo = null } = catalogState;
const [ pendingOffer, setPendingOffer ] = useState<CatalogClubOfferData>(null);
const [ pendingOffer, setPendingOffer ] = useState<ClubOfferData>(null);
const getOfferText = useCallback((offer: CatalogClubOfferData) =>
const getOfferText = useCallback((offer: ClubOfferData) =>
{
let offerText = '';

View File

@ -1,7 +1,7 @@
import { CatalogPageOfferData } from '@nitrots/nitro-renderer';
import { CatalogPageMessageOfferData } from '@nitrots/nitro-renderer';
export interface CatalogPageOfferViewProps
{
isActive: boolean;
offer: CatalogPageOfferData;
offer: CatalogPageMessageOfferData;
}

View File

@ -1,6 +1,6 @@
import { CatalogPageOfferData } from '@nitrots/nitro-renderer';
import { CatalogPageMessageOfferData } from '@nitrots/nitro-renderer';
export interface CatalogPageOffersViewProps
{
offers: CatalogPageOfferData[];
offers: CatalogPageMessageOfferData[];
}

View File

@ -1,9 +1,9 @@
import { CatalogProductOfferData } from '@nitrots/nitro-renderer';
import { CatalogPageMessageProductData } from '@nitrots/nitro-renderer';
import { MouseEventHandler } from 'react';
export interface CatalogProductViewProps
{
isActive: boolean;
product: CatalogProductOfferData;
product: CatalogPageMessageProductData;
onMouseEvent?: MouseEventHandler<Element>;
}

View File

@ -1,8 +1,8 @@
import { CatalogPageOfferData } from '@nitrots/nitro-renderer';
import { CatalogPageMessageOfferData } from '@nitrots/nitro-renderer';
export interface CatalogPurchaseViewProps
{
offer: CatalogPageOfferData;
offer: CatalogPageMessageOfferData;
pageId: number;
extra?: string;
disabled?: boolean;

View File

@ -1,9 +1,9 @@
import { CatalogPageOfferData } from '@nitrots/nitro-renderer';
import { CatalogPageMessageOfferData } from '@nitrots/nitro-renderer';
export interface CatalogPurchaseButtonViewProps
{
className?: string;
offer: CatalogPageOfferData;
offer: CatalogPageMessageOfferData;
pageId: number;
extra?: string;
quantity?: number;

View File

@ -1,9 +1,9 @@
import { CatalogPageOfferData } from '@nitrots/nitro-renderer';
import { CatalogPageMessageOfferData } from '@nitrots/nitro-renderer';
export interface CatalogPurchaseGiftButtonViewProps
{
className?: string;
offer: CatalogPageOfferData;
offer: CatalogPageMessageOfferData;
pageId: number;
extra?: string;
quantity?: number;

View File

@ -1,4 +1,4 @@
import { UserCreditsEvent, UserCurrencyEvent, UserCurrencyUpdateEvent, UserSubscriptionEvent, UserSubscriptionParser } from '@nitrots/nitro-renderer';
import { ActivityPointNotificationMessageEvent, UserCreditsEvent, UserCurrencyEvent, UserSubscriptionEvent, UserSubscriptionParser } from '@nitrots/nitro-renderer';
import { FC, useCallback } from 'react';
import { CreateMessageHook } from '../../hooks/messages/message-event';
import { usePurseContext } from './context/PurseContext';
@ -26,7 +26,7 @@ export const PurseMessageHandler: FC<PurseMessageHandlerProps> = props =>
purse.notify();
}, [ purse ]);
const onUserCurrencyUpdateEvent = useCallback((event: UserCurrencyUpdateEvent) =>
const onUserCurrencyUpdateEvent = useCallback((event: ActivityPointNotificationMessageEvent) =>
{
const parser = event.getParser();
@ -57,7 +57,7 @@ export const PurseMessageHandler: FC<PurseMessageHandlerProps> = props =>
CreateMessageHook(UserCreditsEvent, onUserCreditsEvent);
CreateMessageHook(UserCurrencyEvent, onUserCurrencyEvent);
CreateMessageHook(UserCurrencyUpdateEvent, onUserCurrencyUpdateEvent);
CreateMessageHook(ActivityPointNotificationMessageEvent, onUserCurrencyUpdateEvent);
CreateMessageHook(UserSubscriptionEvent, onUserSubscriptionEvent);
return null;

View File

@ -1,4 +1,4 @@
import { Dispose, DropBounce, EaseOut, JumpBy, Motions, NitroToolbarAnimateIconEvent, Queue, UserFigureEvent, UserInfoDataParser, UserInfoEvent, Wait } from '@nitrots/nitro-renderer';
import { Dispose, DropBounce, EaseOut, FigureUpdateEvent, JumpBy, Motions, NitroToolbarAnimateIconEvent, Queue, UserInfoDataParser, UserInfoEvent, Wait } from '@nitrots/nitro-renderer';
import { FC, useCallback, useState } from 'react';
import { GetRoomSession, GetRoomSessionManager, GoToDesktop } from '../../api';
import { AvatarEditorEvent, CatalogEvent, FriendListEvent, InventoryEvent, NavigatorEvent, RoomWidgetCameraEvent } from '../../events';
@ -35,14 +35,14 @@ export const ToolbarView: FC<ToolbarViewProps> = props =>
CreateMessageHook(UserInfoEvent, onUserInfoEvent);
const onUserFigureEvent = useCallback((event: UserFigureEvent) =>
const onUserFigureEvent = useCallback((event: FigureUpdateEvent) =>
{
const parser = event.getParser();
setUserFigure(parser.figure);
}, []);
CreateMessageHook(UserFigureEvent, onUserFigureEvent);
CreateMessageHook(FigureUpdateEvent, onUserFigureEvent);
const onUnseenItemTrackerUpdateEvent = useCallback((event: UnseenItemTrackerUpdateEvent) =>
{