/* eslint-disable no-template-curly-in-string */ import { HabboClubLevelEnum, RoomCreateComposer } from '@nitrots/nitro-renderer'; import { FC, useEffect, useState } from 'react'; import { GetClubMemberLevel, GetConfiguration, IRoomModel, LocalizeText, SendMessageComposer } from '../../../api'; import { Button, Column, Flex, Grid, LayoutCurrencyIcon, LayoutGridItem, Text } from '../../../common'; import { useNavigatorContext } from '../NavigatorContext'; export const NavigatorRoomCreatorView: FC<{}> = props => { const [ maxVisitorsList, setMaxVisitorsList ] = useState(null); const [ name, setName ] = useState(null); const [ description, setDescription ] = useState(null); const [ category, setCategory ] = useState(null); const [ visitorsCount, setVisitorsCount ] = useState(null); const [ tradesSetting, setTradesSetting ] = useState(0); const [ roomModels, setRoomModels ] = useState([]); const [ selectedModelName, setSelectedModelName ] = useState(''); const { categories = null } = useNavigatorContext(); const getRoomModelImage = (name: string) => GetConfiguration('images.url') + `/navigator/models/model_${ name }.png`; const selectModel = (model: IRoomModel, index: number) => { if(!model || (model.clubLevel > GetClubMemberLevel())) return; setSelectedModelName(roomModels[index].name); }; const createRoom = () => { SendMessageComposer(new RoomCreateComposer(name, description, 'model_' + selectedModelName, Number(category), Number(visitorsCount), tradesSetting)); }; useEffect(() => { if(!maxVisitorsList) { const list = []; for(let i = 10; i <= 100; i = i + 10) list.push(i); setMaxVisitorsList(list); setVisitorsCount(list[0]); } }, [ maxVisitorsList ]); useEffect(() => { if(categories && categories.length) setCategory(categories[0].id); }, [ categories ]); useEffect(() => { const models = GetConfiguration('navigator.room.models'); if(models && models.length) { setRoomModels(models); setSelectedModelName(models[0].name); } }, []); return ( { LocalizeText('navigator.createroom.roomnameinfo') } setName(event.target.value) } placeholder={ LocalizeText('navigator.createroom.roomnameinfo') } /> { LocalizeText('navigator.createroom.roomdescinfo') }