import { GetAvatarRenderManager, IAvatarFigureContainer, SaveWardrobeOutfitMessageComposer } from '@nitrots/nitro-renderer'; import { FC, useCallback } from 'react'; import { GetClubMemberLevel, GetConfigurationValue, LocalizeText, SendMessageComposer } from '../../api'; import { Button, LayoutAvatarImageView, LayoutCurrencyIcon } from '../../common'; import { useAvatarEditor } from '../../hooks'; import { InfiniteGrid } from '../../layout'; export const AvatarEditorWardrobeView: FC<{}> = props => { const { savedFigures = [], setSavedFigures = null, loadAvatarData = null, getFigureString = null, gender = null } = useAvatarEditor(); const hcDisabled = GetConfigurationValue('hc.disabled', false); const wearFigureAtIndex = useCallback((index: number) => { if((index >= savedFigures.length) || (index < 0)) return; const [ figure, gender ] = savedFigures[index]; loadAvatarData(figure.getFigureString(), gender); }, [ savedFigures, loadAvatarData ]); const saveFigureAtWardrobeIndex = useCallback((index: number) => { if((index >= savedFigures.length) || (index < 0)) return; const newFigures = [ ...savedFigures ]; const figure = getFigureString; newFigures[index] = [ GetAvatarRenderManager().createFigureContainer(figure), gender ]; setSavedFigures(newFigures); SendMessageComposer(new SaveWardrobeOutfitMessageComposer((index + 1), figure, gender)); }, [ getFigureString, gender, savedFigures, setSavedFigures ]); return ( { const [ figureContainer, gender ] = item; let clubLevel = 0; if(figureContainer) clubLevel = GetAvatarRenderManager().getFigureClubLevel(figureContainer, gender); return ( { figureContainer && }
{ !hcDisabled && (clubLevel > 0) && }
{ figureContainer && }
); } } items={ savedFigures } overscan={ 5 } /> ); };