🆙 Small fixes NFT Clothing

This commit is contained in:
duckietm
2026-03-26 16:29:27 +01:00
parent a7e9b5bc75
commit 7c39dcb513
2 changed files with 9 additions and 7 deletions
@@ -1,4 +1,4 @@
import { AvatarFigurePartType } from '@nitrots/nitro-renderer';
import { AvatarEditorFigureCategory, AvatarFigurePartType } from '@nitrots/nitro-renderer';
import { FC, useEffect, useState } from 'react';
import { AvatarEditorThumbnailsHelper, GetClubMemberLevel, GetConfigurationValue, IAvatarEditorCategoryPartItem } from '../../../api';
import { LayoutCurrencyIcon, LayoutGridItemProps } from '../../../common';
@@ -15,7 +15,7 @@ export const AvatarEditorFigureSetItemView: FC<{
{
const { setType = null, partItem = null, isSelected = false, width = '100%', ...rest } = props;
const [ assetUrl, setAssetUrl ] = useState<string>('');
const { selectedColorParts = null, getFigureStringWithFace = null } = useAvatarEditor();
const { activeModelKey = '', selectedColorParts = null, getFigureStringWithFace = null } = useAvatarEditor();
const clubLevel = partItem.partSet?.clubLevel ?? 0;
const isHC = !GetConfigurationValue<boolean>('hc.disabled', false) && (clubLevel > 0);
@@ -34,7 +34,7 @@ export const AvatarEditorFigureSetItemView: FC<{
let url: string = null;
if(setType === AvatarFigurePartType.HEAD)
if(setType === AvatarFigurePartType.HEAD && activeModelKey !== AvatarEditorFigureCategory.NFT)
{
url = await AvatarEditorThumbnailsHelper.buildForFace(getFigureStringWithFace(partItem.id), partIsLocked || isSellableNotOwned);
}
@@ -53,16 +53,16 @@ export const AvatarEditorFigureSetItemView: FC<{
};
loadImage();
}, [ setType, partItem, selectedColorParts, getFigureStringWithFace, isSellableNotOwned ]);
}, [ setType, partItem, selectedColorParts, getFigureStringWithFace, isSellableNotOwned, activeModelKey ]);
if(!partItem) return null;
return (
<InfiniteGrid.Item itemActive={ isSelected } itemImage={ (partItem.isClear ? undefined : assetUrl) } className={ `avatar-parts mx-auto${ isSelected ? ' part-selected' : '' }${ isSellableNotOwned ? ' pet-sellable-locked' : '' }` } style={ { backgroundPosition: (setType === AvatarFigurePartType.HEAD) ? 'center -35px' : 'center' } } { ...rest }>
<InfiniteGrid.Item itemActive={ isSelected } itemImage={ (partItem.isClear ? undefined : assetUrl) } className={ `avatar-parts mx-auto${ isSelected ? ' part-selected' : '' }${ !partItem.isClear && isSellableNotOwned ? ' pet-sellable-locked' : '' }` } style={ { backgroundPosition: (setType === AvatarFigurePartType.HEAD && activeModelKey !== AvatarEditorFigureCategory.NFT) ? 'center -35px' : 'center' } } { ...rest }>
{ !partItem.isClear && isHC && <LayoutCurrencyIcon className="absolute inset-e-1 bottom-1" type="hc" /> }
{ partItem.isClear && <AvatarEditorIcon icon="clear" /> }
{ !partItem.isClear && partItem.partSet.isSellable && !isSellableNotOwned && <AvatarEditorIcon className="inset-e-1 bottom-1 absolute" icon="sellable" /> }
{ isSellableNotOwned &&
{ !partItem.isClear && isSellableNotOwned &&
<div className="pet-sellable-badge">
<LayoutCurrencyIcon type={ -1 } />
</div> }
+3 -1
View File
@@ -291,7 +291,9 @@ const useAvatarEditorState = () =>
if(!partSet || !partSet.isSelectable || ((partSet.gender !== gender) && (partSet.gender !== AvatarFigurePartType.UNISEX))) continue;
const isNftPartSet = nftFigureSetIds.has(partSet.id);
const isNftPartSet = nftFigureSetIds.size > 0
? nftFigureSetIds.has(partSet.id)
: GetAvatarRenderManager().downloadManager.isNftPartSet(partSet);
if((buildMode === buildModeDefault) && isNftPartSet) continue;
if((buildMode === buildModeNft) && !isNftPartSet) continue;