mirror of
https://github.com/billsonnn/nitro-react.git
synced 2024-11-30 00:50:50 +01:00
Add effect box widget
This commit is contained in:
parent
2c35c31226
commit
4acaf0ddf7
@ -9,12 +9,14 @@ import { useRoomContext } from '../../../context/RoomContext';
|
|||||||
import { ContextMenuView } from '../../context-menu/ContextMenuView';
|
import { ContextMenuView } from '../../context-menu/ContextMenuView';
|
||||||
import { ContextMenuHeaderView } from '../../context-menu/views/header/ContextMenuHeaderView';
|
import { ContextMenuHeaderView } from '../../context-menu/views/header/ContextMenuHeaderView';
|
||||||
import { ContextMenuListItemView } from '../../context-menu/views/list-item/ContextMenuListItemView';
|
import { ContextMenuListItemView } from '../../context-menu/views/list-item/ContextMenuListItemView';
|
||||||
|
import { EffectBoxConfirmView } from './views/effect-box/EffectBoxConfirmView';
|
||||||
import { MonsterPlantSeedConfirmView } from './views/monsterplant-seed/MonsterPlantSeedConfirmView';
|
import { MonsterPlantSeedConfirmView } from './views/monsterplant-seed/MonsterPlantSeedConfirmView';
|
||||||
import { PurchasableClothingConfirmView } from './views/purchaseable-clothing/PurchasableClothingConfirmView';
|
import { PurchasableClothingConfirmView } from './views/purchaseable-clothing/PurchasableClothingConfirmView';
|
||||||
|
|
||||||
const MONSTERPLANT_SEED_CONFIRMATION: string = 'MONSTERPLANT_SEED_CONFIRMATION';
|
const MONSTERPLANT_SEED_CONFIRMATION: string = 'MONSTERPLANT_SEED_CONFIRMATION';
|
||||||
const PURCHASABLE_CLOTHING_CONFIRMATION: string = 'PURCHASABLE_CLOTHING_CONFIRMATION';
|
const PURCHASABLE_CLOTHING_CONFIRMATION: string = 'PURCHASABLE_CLOTHING_CONFIRMATION';
|
||||||
const GROUP_FURNITURE: string = 'GROUP_FURNITURE';
|
const GROUP_FURNITURE: string = 'GROUP_FURNITURE';
|
||||||
|
const EFFECTBOX_OPEN: string = 'EFFECTBOX_OPEN';
|
||||||
|
|
||||||
export const FurnitureContextMenuView: FC<{}> = props =>
|
export const FurnitureContextMenuView: FC<{}> = props =>
|
||||||
{
|
{
|
||||||
@ -50,12 +52,24 @@ export const FurnitureContextMenuView: FC<{}> = props =>
|
|||||||
switch(event.type)
|
switch(event.type)
|
||||||
{
|
{
|
||||||
case RoomEngineTriggerWidgetEvent.REQUEST_MONSTERPLANT_SEED_PLANT_CONFIRMATION_DIALOG:
|
case RoomEngineTriggerWidgetEvent.REQUEST_MONSTERPLANT_SEED_PLANT_CONFIRMATION_DIALOG:
|
||||||
|
if(!IsOwnerOfFurniture(object)) return;
|
||||||
|
|
||||||
setConfirmingObjectId(object.id);
|
setConfirmingObjectId(object.id);
|
||||||
setConfirmMode(MONSTERPLANT_SEED_CONFIRMATION);
|
setConfirmMode(MONSTERPLANT_SEED_CONFIRMATION);
|
||||||
|
|
||||||
|
close();
|
||||||
|
return;
|
||||||
|
case RoomEngineTriggerWidgetEvent.REQUEST_EFFECTBOX_OPEN_DIALOG:
|
||||||
|
if(!IsOwnerOfFurniture(object)) return;
|
||||||
|
|
||||||
|
setConfirmingObjectId(object.id);
|
||||||
|
setConfirmMode(EFFECTBOX_OPEN);
|
||||||
|
|
||||||
close();
|
close();
|
||||||
return;
|
return;
|
||||||
case RoomEngineTriggerWidgetEvent.REQUEST_PURCHASABLE_CLOTHING_CONFIRMATION_DIALOG:
|
case RoomEngineTriggerWidgetEvent.REQUEST_PURCHASABLE_CLOTHING_CONFIRMATION_DIALOG:
|
||||||
|
if(!IsOwnerOfFurniture(object)) return;
|
||||||
|
|
||||||
setConfirmingObjectId(object.id);
|
setConfirmingObjectId(object.id);
|
||||||
setConfirmMode(PURCHASABLE_CLOTHING_CONFIRMATION);
|
setConfirmMode(PURCHASABLE_CLOTHING_CONFIRMATION);
|
||||||
|
|
||||||
@ -93,6 +107,7 @@ export const FurnitureContextMenuView: FC<{}> = props =>
|
|||||||
useRoomEngineEvent(RoomEngineTriggerWidgetEvent.CLOSE_FURNI_CONTEXT_MENU, onRoomEngineTriggerWidgetEvent);
|
useRoomEngineEvent(RoomEngineTriggerWidgetEvent.CLOSE_FURNI_CONTEXT_MENU, onRoomEngineTriggerWidgetEvent);
|
||||||
useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_MONSTERPLANT_SEED_PLANT_CONFIRMATION_DIALOG, onRoomEngineTriggerWidgetEvent);
|
useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_MONSTERPLANT_SEED_PLANT_CONFIRMATION_DIALOG, onRoomEngineTriggerWidgetEvent);
|
||||||
useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_PURCHASABLE_CLOTHING_CONFIRMATION_DIALOG, onRoomEngineTriggerWidgetEvent);
|
useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_PURCHASABLE_CLOTHING_CONFIRMATION_DIALOG, onRoomEngineTriggerWidgetEvent);
|
||||||
|
useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_EFFECTBOX_OPEN_DIALOG, onRoomEngineTriggerWidgetEvent);
|
||||||
|
|
||||||
const onGroupFurniContextMenuInfoMessageEvent = useCallback((event: GroupFurniContextMenuInfoMessageEvent) =>
|
const onGroupFurniContextMenuInfoMessageEvent = useCallback((event: GroupFurniContextMenuInfoMessageEvent) =>
|
||||||
{
|
{
|
||||||
@ -143,6 +158,7 @@ export const FurnitureContextMenuView: FC<{}> = props =>
|
|||||||
<>
|
<>
|
||||||
{ (confirmMode === MONSTERPLANT_SEED_CONFIRMATION) && <MonsterPlantSeedConfirmView objectId={ confirmingObjectId } close={ closeConfirm } /> }
|
{ (confirmMode === MONSTERPLANT_SEED_CONFIRMATION) && <MonsterPlantSeedConfirmView objectId={ confirmingObjectId } close={ closeConfirm } /> }
|
||||||
{ (confirmMode === PURCHASABLE_CLOTHING_CONFIRMATION) && <PurchasableClothingConfirmView objectId={ confirmingObjectId } close={ closeConfirm } /> }
|
{ (confirmMode === PURCHASABLE_CLOTHING_CONFIRMATION) && <PurchasableClothingConfirmView objectId={ confirmingObjectId } close={ closeConfirm } /> }
|
||||||
|
{ (confirmMode === EFFECTBOX_OPEN) && <EffectBoxConfirmView objectId={ confirmingObjectId } close={ closeConfirm } /> }
|
||||||
{ (objectId >= 0) && mode &&
|
{ (objectId >= 0) && mode &&
|
||||||
<ContextMenuView objectId={ objectId } category={ RoomObjectCategory.FLOOR } close={ close } fades={ true }>
|
<ContextMenuView objectId={ objectId } category={ RoomObjectCategory.FLOOR } close={ close } fades={ true }>
|
||||||
{ (mode === ContextMenuEnum.FRIEND_FURNITURE) &&
|
{ (mode === ContextMenuEnum.FRIEND_FURNITURE) &&
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
import { FC, useCallback } from 'react';
|
||||||
|
import { LocalizeText } from '../../../../../../../api';
|
||||||
|
import { NitroCardContentView, NitroCardHeaderView, NitroCardView } from '../../../../../../../layout';
|
||||||
|
import { useRoomContext } from '../../../../../context/RoomContext';
|
||||||
|
import { EffectBoxConfirmViewProps } from './EffectBoxConfirmView.types';
|
||||||
|
|
||||||
|
export const EffectBoxConfirmView: FC<EffectBoxConfirmViewProps> = props =>
|
||||||
|
{
|
||||||
|
const { objectId = -1, close = null } = props;
|
||||||
|
const { roomSession = null, widgetHandler = null } = useRoomContext();
|
||||||
|
|
||||||
|
const useProduct = useCallback(() =>
|
||||||
|
{
|
||||||
|
roomSession.useMultistateItem(objectId);
|
||||||
|
|
||||||
|
close();
|
||||||
|
}, [ roomSession, objectId, close ]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<NitroCardView className="nitro-use-product-confirmation">
|
||||||
|
<NitroCardHeaderView headerText={ LocalizeText('effectbox.header.title') } onCloseClick={ close } />
|
||||||
|
<NitroCardContentView className="d-flex">
|
||||||
|
<div className="row">
|
||||||
|
<div className="col d-flex flex-column justify-content-between">
|
||||||
|
<div className="d-flex flex-column">
|
||||||
|
<div className="text-black">{ LocalizeText('effectbox.header.description') }</div>
|
||||||
|
</div>
|
||||||
|
<div className="d-flex justify-content-between align-items-end w-100 h-100">
|
||||||
|
<button type="button" className="btn btn-danger" onClick={ close }>{ LocalizeText('generic.cancel') }</button>
|
||||||
|
<button type="button" className="btn btn-primary" onClick={ useProduct }>{ LocalizeText('generic.ok') }</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</NitroCardContentView>
|
||||||
|
</NitroCardView>
|
||||||
|
);
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
export interface EffectBoxConfirmViewProps
|
||||||
|
{
|
||||||
|
objectId: number;
|
||||||
|
close: () => void;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user