import { GetRoomAdPurchaseInfoComposer, GetUserEventCatsMessageComposer, PurchaseRoomAdMessageComposer, RoomAdPurchaseInfoEvent, RoomEntryData } from '@nitrots/nitro-renderer'; import { FC, useEffect, useState } from 'react'; import { LocalizeText, SendMessageComposer } from '../../../../../api'; import { Button, Column, Text } from '../../../../../common'; import { useCatalog, useMessageEvent, useNavigator, useRoomPromote } from '../../../../../hooks'; import { NitroInput } from '../../../../../layout'; import { CatalogLayoutProps } from './CatalogLayout.types'; export const CatalogLayoutRoomAdsView: FC = props => { const { page = null } = 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(); useEffect(() => { if(isExtended) { setRoomId(promoteInformation.data.flatId); setEventName(promoteInformation.data.eventName); setEventDesc(promoteInformation.data.eventDescription); setCategoryId(promoteInformation.data.categoryId); setExtended(isExtended); // This is for sending to packet setIsExtended(false); // This is from hook useRoomPromotte } }, [ isExtended, eventName, eventDesc, categoryId, promoteInformation.data, setIsExtended ]); const resetData = () => { setRoomId(-1); setEventName(''); setEventDesc(''); setCategoryId(1); setIsExtended(false); setIsVisible(false); }; const purchaseAd = () => { const pageId = page.pageId; const offerId = page.offers.length >= 1 ? page.offers[0].offerId : -1; const flatId = roomId; const name = eventName; const desc = eventDesc; const catId = categoryId; SendMessageComposer(new PurchaseRoomAdMessageComposer(pageId, offerId, flatId, name, extended, desc, catId)); 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()); }, []); return (<> { LocalizeText('roomad.catalog_header') }
{ LocalizeText('roomad.catalog_text', [ 'duration' ], [ '120' ]) }
{ LocalizeText('navigator.category') }
{ LocalizeText('roomad.catalog_name') } setEventName(event.target.value) } />
{ LocalizeText('roomad.catalog_description') }