import { DeleteItemMessageComposer } from '@nitrots/nitro-renderer'; import { FC, useState } from 'react'; import { FaCaretLeft, FaCaretRight } from 'react-icons/fa'; import { FurnitureItem, LocalizeText, ProductTypeEnum, SendMessageComposer } from '../../../../api'; import { LayoutFurniImageView, NitroCardHeaderView, NitroCardView } from '../../../../common'; import { DeleteItemConfirmEvent } from '../../../../events'; import { useNotification, useUiEvent } from '../../../../hooks'; import { NitroButton, NitroInput } from '../../../../layout'; export const InventoryFurnitureDeleteView: FC<{}> = props => { const [ item, setItem ] = useState(null); const [ amount, setAmount ] = useState(1); const [ maxAmount, setMaxAmount ] = useState(1); const { showConfirm = null } = useNotification(); const onClose = () => { setItem(null); setAmount(1); setMaxAmount(1); }; const updateAmount = (value: string) => { let newValue = parseInt(value); if(isNaN(newValue)) newValue = 1; newValue = Math.max(newValue, 1); newValue = Math.min(newValue, maxAmount); setAmount(newValue); }; const deleteItem = () => { if(!item) return; const furniTitle = LocalizeText(item.isWallItem ? 'wallItem.name.' + item.type : 'roomItem.name.' + item.type); showConfirm( LocalizeText('inventory.delete.confirm_delete.info', [ 'furniname', 'amount' ], [ furniTitle, amount.toString() ]), () => { SendMessageComposer(new DeleteItemMessageComposer(item.id, amount)); onClose(); }, () => onClose(), null, null, LocalizeText('inventory.delete.confirm_delete.title') ); }; useUiEvent(DeleteItemConfirmEvent.DELETE_ITEM_CONFIRM, event => { setItem(event.item); setMaxAmount(event.amount); setAmount(1); }); if(!item) return null; const furniTitle = LocalizeText(item.isWallItem ? 'wallItem.name.' + item.type : 'roomItem.name.' + item.type); return (
{ furniTitle }
updateAmount((amount - 1).toString()) } /> updateAmount(event.target.value) } /> updateAmount((amount + 1).toString()) } /> updateAmount(maxAmount.toString()) }> { LocalizeText('inventory.delete.max_amount.button') }
maxAmount } onClick={ deleteItem }> { LocalizeText('inventory.delete.confirm_delete.button') }
); };