mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-20 07:26:19 +00:00
🆙 Added delete Furni / Pets in inventory
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
import { NitroCard } from '@layout/NitroCard';
|
||||
import { AddLinkEventTracker, BadgePointLimitsEvent, GetLocalizationManager, GetRoomEngine, ILinkEventTracker, IRoomSession, RemoveLinkEventTracker, RoomEngineObjectEvent, RoomEngineObjectPlacedEvent, RoomPreviewer, RoomSessionEvent } from '@nitrots/nitro-renderer';
|
||||
import { FC, useEffect, useState } from 'react';
|
||||
import { LocalizeText, UnseenItemCategory, isObjectMoverRequested, setObjectMoverRequested } from '../../api';
|
||||
import { useInventoryTrade, useInventoryUnseenTracker, useMessageEvent, useNitroEvent } from '../../hooks';
|
||||
import { GroupItem, LocalizeText, UnseenItemCategory, isObjectMoverRequested, setObjectMoverRequested } from '../../api';
|
||||
import { NitroCardHeaderView, NitroCardTabsItemView, NitroCardTabsView, NitroCardView } from '../../common';
|
||||
import { useInventoryBadges, useInventoryFurni, useInventoryTrade, useInventoryUnseenTracker, useMessageEvent, useNitroEvent } from '../../hooks';
|
||||
import { InventoryCategoryFilterView } from './views/InventoryCategoryFilterView';
|
||||
import { InventoryBadgeView } from './views/badge/InventoryBadgeView';
|
||||
import { InventoryBotView } from './views/bot/InventoryBotView';
|
||||
import { InventoryFurnitureDeleteView } from './views/furniture/InventoryFurnitureDeleteView';
|
||||
import { InventoryFurnitureView } from './views/furniture/InventoryFurnitureView';
|
||||
import { InventoryTradeView } from './views/furniture/InventoryTradeView';
|
||||
import { InventoryPetView } from './views/pet/InventoryPetView';
|
||||
@@ -13,8 +15,8 @@ const TAB_FURNITURE: string = 'inventory.furni';
|
||||
const TAB_BOTS: string = 'inventory.bots';
|
||||
const TAB_PETS: string = 'inventory.furni.tab.pets';
|
||||
const TAB_BADGES: string = 'inventory.badges';
|
||||
const TABS = [ TAB_FURNITURE, TAB_BOTS, TAB_PETS, TAB_BADGES ];
|
||||
const UNSEEN_CATEGORIES = [ UnseenItemCategory.FURNI, UnseenItemCategory.BOT, UnseenItemCategory.PET, UnseenItemCategory.BADGE ];
|
||||
const TABS = [ TAB_FURNITURE, TAB_PETS, TAB_BADGES, TAB_BOTS ];
|
||||
const UNSEEN_CATEGORIES = [ UnseenItemCategory.FURNI, UnseenItemCategory.PET, UnseenItemCategory.BADGE, UnseenItemCategory.BOT ];
|
||||
|
||||
export const InventoryView: FC<{}> = props =>
|
||||
{
|
||||
@@ -22,8 +24,12 @@ export const InventoryView: FC<{}> = props =>
|
||||
const [ currentTab, setCurrentTab ] = useState<string>(TABS[0]);
|
||||
const [ roomSession, setRoomSession ] = useState<IRoomSession>(null);
|
||||
const [ roomPreviewer, setRoomPreviewer ] = useState<RoomPreviewer>(null);
|
||||
const [ filteredGroupItems, setFilteredGroupItems ] = useState<GroupItem[]>([]);
|
||||
const [ filteredBadgeCodes, setFilteredBadgeCodes ] = useState<string[]>([]);
|
||||
const { isTrading = false, stopTrading = null } = useInventoryTrade();
|
||||
const { getCount = null, resetCategory = null } = useInventoryUnseenTracker();
|
||||
const { getCount = null } = useInventoryUnseenTracker();
|
||||
const { groupItems = [] } = useInventoryFurni();
|
||||
const { badgeCodes = [] } = useInventoryBadges();
|
||||
|
||||
const onClose = () =>
|
||||
{
|
||||
@@ -117,44 +123,59 @@ export const InventoryView: FC<{}> = props =>
|
||||
|
||||
if(!isVisible) return null;
|
||||
|
||||
const showFilter = !isTrading && (currentTab === TAB_FURNITURE || currentTab === TAB_BADGES);
|
||||
|
||||
return (
|
||||
<NitroCard
|
||||
className="w-inventory-w h-inventory-h min-w-inventory-w min-h-inventory-h"
|
||||
uniqueKey="inventory">
|
||||
<NitroCard.Header
|
||||
headerText={ LocalizeText('inventory.title') }
|
||||
onCloseClick={ onClose } />
|
||||
{ !isTrading &&
|
||||
<>
|
||||
<NitroCard.Tabs>
|
||||
{ TABS.map((name, index) =>
|
||||
{
|
||||
return (
|
||||
<NitroCard.TabItem
|
||||
key={ index }
|
||||
count={ getCount(UNSEEN_CATEGORIES[index]) }
|
||||
isActive={ (currentTab === name) }
|
||||
onClick={ event => setCurrentTab(name) }>
|
||||
{ LocalizeText(name) }
|
||||
</NitroCard.TabItem>
|
||||
);
|
||||
}) }
|
||||
</NitroCard.Tabs>
|
||||
<NitroCard.Content>
|
||||
{ (currentTab === TAB_FURNITURE ) &&
|
||||
<InventoryFurnitureView roomPreviewer={ roomPreviewer } roomSession={ roomSession } /> }
|
||||
{ (currentTab === TAB_BOTS ) &&
|
||||
<InventoryBotView roomPreviewer={ roomPreviewer } roomSession={ roomSession } /> }
|
||||
{ (currentTab === TAB_PETS ) &&
|
||||
<InventoryPetView roomPreviewer={ roomPreviewer } roomSession={ roomSession } /> }
|
||||
{ (currentTab === TAB_BADGES ) &&
|
||||
<InventoryBadgeView /> }
|
||||
</NitroCard.Content>
|
||||
</> }
|
||||
{ isTrading &&
|
||||
<NitroCard.Content>
|
||||
<InventoryTradeView cancelTrade={ onClose } />
|
||||
</NitroCard.Content> }
|
||||
</NitroCard>
|
||||
<>
|
||||
<NitroCardView className="nitro-inventory" uniqueKey="inventory">
|
||||
<NitroCardHeaderView
|
||||
headerText={ LocalizeText('inventory.title') }
|
||||
onCloseClick={ onClose } />
|
||||
{ !isTrading &&
|
||||
<>
|
||||
<NitroCardTabsView>
|
||||
{ TABS.map((name, index) =>
|
||||
{
|
||||
return (
|
||||
<NitroCardTabsItemView
|
||||
key={ index }
|
||||
count={ getCount(UNSEEN_CATEGORIES[index]) }
|
||||
isActive={ (currentTab === name) }
|
||||
onClick={ event => setCurrentTab(name) }>
|
||||
{ LocalizeText(name) }
|
||||
</NitroCardTabsItemView>
|
||||
);
|
||||
}) }
|
||||
</NitroCardTabsView>
|
||||
<div className="flex flex-col overflow-hidden bg-[#DFDFDF] p-2 h-full gap-2">
|
||||
{ showFilter &&
|
||||
<InventoryCategoryFilterView
|
||||
badgeCodes={ badgeCodes }
|
||||
currentTab={ currentTab }
|
||||
groupItems={ groupItems }
|
||||
setBadgeCodes={ setFilteredBadgeCodes }
|
||||
setGroupItems={ setFilteredGroupItems } /> }
|
||||
<div className="flex-1 overflow-hidden">
|
||||
{ (currentTab === TAB_FURNITURE) &&
|
||||
<InventoryFurnitureView
|
||||
filteredGroupItems={ filteredGroupItems }
|
||||
roomPreviewer={ roomPreviewer }
|
||||
roomSession={ roomSession } /> }
|
||||
{ (currentTab === TAB_PETS) &&
|
||||
<InventoryPetView roomPreviewer={ roomPreviewer } roomSession={ roomSession } /> }
|
||||
{ (currentTab === TAB_BADGES) &&
|
||||
<InventoryBadgeView filteredBadgeCodes={ filteredBadgeCodes } /> }
|
||||
{ (currentTab === TAB_BOTS) &&
|
||||
<InventoryBotView roomPreviewer={ roomPreviewer } roomSession={ roomSession } /> }
|
||||
</div>
|
||||
</div>
|
||||
</> }
|
||||
{ isTrading &&
|
||||
<div className="flex flex-col overflow-hidden bg-[#DFDFDF] p-2 h-full">
|
||||
<InventoryTradeView cancelTrade={ onClose } />
|
||||
</div> }
|
||||
</NitroCardView>
|
||||
<InventoryFurnitureDeleteView />
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user