5180 fichiers 38.5 Mo 0 téléchargements 484 vues mis à jour il y a 7 heures ui
nitro-v36-with-renderer-v36 / src / components / room / widgets / furniture / FurnitureGiftOpeningView.tsx
FurnitureGiftOpeningView.tsx 5.4 Ko Télécharger le fichier
import { CreateLinkEvent } from '@octane/renderer';
import { FC } from 'react';
import { attemptItemPlacement, CatalogPageName, LocalizeText } from '../../../../api';
import { Button, Column, LayoutGiftTagView, LayoutImage, OctaneCardContentView, OctaneCardHeaderView, OctaneCardView, Text } from '../../../../common';
import { useCatalogUiState, useFurniturePresentWidget, useInventoryFurni } from '../../../../hooks';
import '../../../../css/room/FurniWindowsBAir.css';
import { NativeTextTree } from '../../../../common/native-text/NativeTextTree';

export const FurnitureGiftOpeningView: FC<{}> = (props) => {
    const {
        objectId = -1,
        classId = -1,
        itemType = null,
        text = null,
        isOwnerOfFurniture = false,
        senderName = null,
        senderFigure = null,
        placedItemId = -1,
        placedItemType = null,
        placedInRoom = false,
        imageUrl = null,
        openPresent = null,
        onClose = null
    } = useFurniturePresentWidget();
    const { groupItems = [] } = useInventoryFurni();
    const { setGiftReceiver = null } = useCatalogUiState();

    if (objectId === -1) return null;

    const place = (itemId: number) => {
        const groupItem = groupItems.find((group) => group.getItemById(itemId)?.id === itemId);

        if (groupItem) attemptItemPlacement(groupItem);

        onClose();
    };

    const giveGiftBack = () => {
        setGiftReceiver?.(senderName);
        CreateLinkEvent(`catalog/open/${CatalogPageName.GIFT_SHOP}`);
    };

    return (
        <NativeTextTree>
            <OctaneCardView className="octane-gift-opening octane-furni-gift-opening" theme="primary-slim">
                <OctaneCardHeaderView
                    headerText={LocalizeText(
                        senderName ? 'widget.furni.present.window.title_from' : 'widget.furni.present.window.title',
                        ['name'],
                        [senderName]
                    )}
                    onCloseClick={onClose}
                />
                <OctaneCardContentView>
                    {placedItemId === -1 && (
                        <Column overflow="hidden">
                            <div className="flex justify-center items-center overflow-auto">
                                <LayoutGiftTagView figure={senderFigure} message={text} userName={senderName} />
                            </div>
                            {isOwnerOfFurniture && (
                                <div className="flex gap-1">
                                    {senderName && (
                                        <Button fullWidth onClick={giveGiftBack}>
                                            {LocalizeText('widget.furni.present.give_gift', ['name'], [senderName])}
                                        </Button>
                                    )}
                                    <Button fullWidth variant="success" onClick={openPresent}>
                                        {LocalizeText('widget.furni.present.open_gift')}
                                    </Button>
                                </div>
                            )}
                        </Column>
                    )}
                    {placedItemId > -1 && (
                        <div className="flex gap-2 overflow-hidden">
                            <Column center className="p-2">
                                <LayoutImage imageUrl={imageUrl} />
                            </Column>
                            <Column grow>
                                <Column center gap={1}>
                                    <Text wrap className="octane-furni-gift-opening__message">
                                        {LocalizeText('widget.furni.present.message_opened')}
                                    </Text>
                                    <Text bold className="octane-furni-gift-opening__name">
                                        {text}
                                    </Text>
                                </Column>
                                <Column grow gap={1}>
                                    <div className="flex gap-1">
                                        {placedInRoom && (
                                            <Button fullWidth onClick={null}>
                                                {LocalizeText('widget.furni.present.put_in_inventory')}
                                            </Button>
                                        )}
                                        <Button fullWidth variant="success" onClick={(event) => place(placedItemId)}>
                                            {LocalizeText(placedInRoom ? 'widget.furni.present.keep_in_room' : 'widget.furni.present.place_in_room')}
                                        </Button>
                                    </div>
                                    {senderName && senderName.length && (
                                        <Button fullWidth onClick={giveGiftBack}>
                                            {LocalizeText('widget.furni.present.give_gift', ['name'], [senderName])}
                                        </Button>
                                    )}
                                </Column>
                            </Column>
                        </div>
                    )}
                </OctaneCardContentView>
            </OctaneCardView>
        </NativeTextTree>
    );
};
15Sujets
1Dépôts
20Membres
3En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser