diff --git a/src/views/catalog/views/page/purchase/CatalogPurchaseView.tsx b/src/views/catalog/views/page/purchase/CatalogPurchaseView.tsx index 840f8ef2..794319aa 100644 --- a/src/views/catalog/views/page/purchase/CatalogPurchaseView.tsx +++ b/src/views/catalog/views/page/purchase/CatalogPurchaseView.tsx @@ -71,7 +71,7 @@ export const CatalogPurchaseView: FC = props =>
- { offer.giftable && } + { offer.giftable && }
); diff --git a/src/views/catalog/views/page/purchase/purchase-gift-button/CatalogPurchaseGiftButtonView.tsx b/src/views/catalog/views/page/purchase/purchase-gift-button/CatalogPurchaseGiftButtonView.tsx index 34ae59d5..b55f1aba 100644 --- a/src/views/catalog/views/page/purchase/purchase-gift-button/CatalogPurchaseGiftButtonView.tsx +++ b/src/views/catalog/views/page/purchase/purchase-gift-button/CatalogPurchaseGiftButtonView.tsx @@ -6,7 +6,7 @@ import { CatalogPurchaseGiftButtonViewProps } from './CatalogPurchaseGiftButtonV export const CatalogPurchaseGiftButtonView: FC = props => { - const { className = '', offer = null, pageId = -1, extra = null, quantity = 1, isPurchaseAllowed = true, beforePurchase = null } = props; + const { className = '', offer = null, pageId = -1, extra = null, disabled = false } = props; const initGift = useCallback(() => { @@ -14,6 +14,6 @@ export const CatalogPurchaseGiftButtonView: FC{ LocalizeText('catalog.purchase_confirmation.gift') } + ); } diff --git a/src/views/catalog/views/page/purchase/purchase-gift-button/CatalogPurchaseGiftButtonView.types.ts b/src/views/catalog/views/page/purchase/purchase-gift-button/CatalogPurchaseGiftButtonView.types.ts index 53d4daf5..e3c3a580 100644 --- a/src/views/catalog/views/page/purchase/purchase-gift-button/CatalogPurchaseGiftButtonView.types.ts +++ b/src/views/catalog/views/page/purchase/purchase-gift-button/CatalogPurchaseGiftButtonView.types.ts @@ -6,7 +6,5 @@ export interface CatalogPurchaseGiftButtonViewProps offer: CatalogPageMessageOfferData; pageId: number; extra?: string; - quantity?: number; - isPurchaseAllowed?: boolean; - beforePurchase?: () => void; + disabled?: boolean; } diff --git a/src/views/room/widgets/furniture/gift-opening/FurnitureGiftOpeningView.tsx b/src/views/room/widgets/furniture/gift-opening/FurnitureGiftOpeningView.tsx index 67c84ae7..f0aabaf5 100644 --- a/src/views/room/widgets/furniture/gift-opening/FurnitureGiftOpeningView.tsx +++ b/src/views/room/widgets/furniture/gift-opening/FurnitureGiftOpeningView.tsx @@ -1,5 +1,6 @@ +import { RoomObjectCategory, RoomObjectOperationType } from '@nitrots/nitro-renderer'; import { FC, useCallback, useMemo, useState } from 'react'; -import { CreateLinkEvent, GetSessionDataManager, LocalizeText, RoomWidgetPresentOpenMessage, RoomWidgetRoomObjectUpdateEvent, RoomWidgetUpdatePresentDataEvent } from '../../../../../api'; +import { CreateLinkEvent, GetRoomEngine, GetSessionDataManager, LocalizeText, RoomWidgetPresentOpenMessage, RoomWidgetRoomObjectUpdateEvent, RoomWidgetUpdatePresentDataEvent } from '../../../../../api'; import { CreateEventDispatcherHook } from '../../../../../hooks/events/event-dispatcher.base'; import { NitroCardContentView, NitroCardHeaderView, NitroCardView, NitroLayoutGiftCardView } from '../../../../../layout'; import { ProductTypeEnum } from '../../../../catalog/common/ProductTypeEnum'; @@ -11,7 +12,6 @@ const LANDSCAPE: string = 'landscape'; export const FurnitureGiftOpeningView: FC<{}> = props => { - const { eventDispatcher = null, widgetHandler = null } = useRoomContext(); const [ objectId, setObjectId ] = useState(-1); const [ classId, setClassId ] = useState(-1); const [ itemType, setItemType ] = useState(null); @@ -24,6 +24,7 @@ export const FurnitureGiftOpeningView: FC<{}> = props => const [ placedInRoom, setPlacedInRoom ] = useState(false); const [ imageUrl, setImageUrl ] = useState(null); const [ openRequested, setOpenRequested ] = useState(false); + const { roomSession = null, eventDispatcher = null, widgetHandler = null } = useRoomContext(); const clearGift = useCallback(() => { @@ -127,7 +128,12 @@ export const FurnitureGiftOpeningView: FC<{}> = props => const close = useCallback(() => { setObjectId(-1); - }, []); + setOpenRequested(false); + setPlacedItemId(-1); + setPlacedInRoom(false); + setText(null); + setIsOwnerOfFurniture(false); + }, [ clearGift ]); const isSpaces = useMemo(() => { @@ -166,9 +172,24 @@ export const FurnitureGiftOpeningView: FC<{}> = props => case 'room': return; case 'inventory': + if((placedItemId > 0) && placedInRoom) + { + if(placedItemType === ProductTypeEnum.PET) + { + roomSession.pickupPet(placedItemId); + } + else + { + const roomObject = GetRoomEngine().getRoomObject(roomSession.roomId, placedItemId, RoomObjectCategory.FLOOR); + + if(roomObject) GetRoomEngine().processRoomObjectOperation(roomObject.id, RoomObjectCategory.FLOOR, RoomObjectOperationType.OBJECT_PICKUP); + } + } + + close(); return; } - }, [ widgetHandler, objectId ]); + }, [ roomSession, widgetHandler, objectId, placedInRoom, placedItemId, placedItemType, close ]); if(objectId === -1) return null;