diff --git a/src/components/catalog/views/page/layout/CatalogLayoutRoomAdsView.tsx b/src/components/catalog/views/page/layout/CatalogLayoutRoomAdsView.tsx index 1722db8..d9c6c87 100644 --- a/src/components/catalog/views/page/layout/CatalogLayoutRoomAdsView.tsx +++ b/src/components/catalog/views/page/layout/CatalogLayoutRoomAdsView.tsx @@ -1,8 +1,9 @@ import { GetRoomAdPurchaseInfoComposer, GetUserEventCatsMessageComposer, PurchaseRoomAdMessageComposer, RoomAdPurchaseInfoEvent, RoomEntryData } from '@nitrots/nitro-renderer'; import { FC, useEffect, useState } from 'react'; import { LocalizeText, SendMessageComposer } from '../../../../../api'; +import { useNitroQuery } from '../../../../../api/nitro-query'; import { Button, Column, Text } from '../../../../../common'; -import { useCatalog, useMessageEvent, useNavigator, useRoomPromote } from '../../../../../hooks'; +import { useCatalog, useNavigator, useRoomPromote } from '../../../../../hooks'; import { NitroInput } from '../../../../../layout'; import { CatalogLayoutProps } from './CatalogLayout.types'; @@ -14,13 +15,20 @@ export const CatalogLayoutRoomAdsView: FC = props => const [ eventName, setEventName ] = useState(''); const [ eventDesc, setEventDesc ] = useState(''); const [ roomId, setRoomId ] = useState(-1); - const [ availableRooms, setAvailableRooms ] = useState([]); const [ extended, setExtended ] = useState(false); const [ categoryId, setCategoryId ] = useState(1); const { categories = null } = useNavigator(); const { setIsVisible = null } = useCatalog(); const { promoteInformation, isExtended, setIsExtended } = useRoomPromote(); + const { data: availableRooms = [] } = useNitroQuery({ + key: [ 'nitro', 'catalog', 'room-ad-purchase-info' ], + request: () => new GetRoomAdPurchaseInfoComposer(), + parser: RoomAdPurchaseInfoEvent, + select: e => e.getParser()?.rooms ?? [], + staleTime: 60_000 + }); + useEffect(() => { if(isExtended) @@ -62,18 +70,8 @@ export const CatalogLayoutRoomAdsView: FC = props => resetData(); }; - useMessageEvent(RoomAdPurchaseInfoEvent, event => - { - const parser = event.getParser(); - - if(!parser) return; - - setAvailableRooms(parser.rooms); - }); - useEffect(() => { - SendMessageComposer(new GetRoomAdPurchaseInfoComposer()); // TODO: someone needs to fix this for morningstar SendMessageComposer(new GetUserEventCatsMessageComposer()); }, []);