nitro-react/src/views/room/widgets/furniture/dimmer/FurnitureDimmerView.tsx

83 lines
3.3 KiB
TypeScript
Raw Normal View History

2021-06-13 22:01:22 +02:00
import { FC, useCallback, useState } from 'react';
2021-06-23 11:34:07 +02:00
import { NitroCardContentView, NitroCardHeaderView, NitroCardView } from '../../../../../layout';
2021-06-13 22:01:22 +02:00
import { LocalizeText } from '../../../../../utils/LocalizeText';
2021-06-17 19:23:34 +02:00
import { useRoomContext } from '../../../context/RoomContext';
2021-06-13 22:01:22 +02:00
import { FurnitureDimmerData } from './FurnitureDimmerData';
import { FurnitureDimmerViewProps } from './FurnitureDimmerView.types';
export const FurnitureDimmerView: FC<FurnitureDimmerViewProps> = props =>
{
2021-06-17 19:23:34 +02:00
const { eventDispatcher = null, widgetHandler = null } = useRoomContext();
2021-06-13 22:01:22 +02:00
const [ dimmerData, setDimmerData ] = useState<FurnitureDimmerData>(null);
2021-06-17 19:23:34 +02:00
// const onNitroEvent = useCallback((event: NitroEvent) =>
// {
// switch(event.type)
// {
// case RoomEngineTriggerWidgetEvent.REQUEST_DIMMER: {
// const widgetEvent = (event as RoomEngineTriggerWidgetEvent);
2021-06-13 22:01:22 +02:00
2021-06-17 19:23:34 +02:00
// const roomObject = GetRoomEngine().getRoomObject(widgetEvent.roomId, widgetEvent.objectId, widgetEvent.category);
2021-06-13 22:01:22 +02:00
2021-06-17 19:23:34 +02:00
// if(!roomObject) return;
2021-06-13 22:01:22 +02:00
2021-06-17 19:23:34 +02:00
// const data = roomObject.model.getValue<string[]>(RoomObjectVariable.FURNITURE_DATA);
2021-06-13 22:01:22 +02:00
2021-06-17 19:23:34 +02:00
// console.log('data', data);
2021-06-13 22:01:22 +02:00
2021-06-17 19:23:34 +02:00
// setDimmerData(new FurnitureDimmerData(widgetEvent.objectId, widgetEvent.category, false));
// return;
// }
// case RoomWidgetRoomObjectUpdateEvent.FURNI_REMOVED: {
// const widgetEvent = (event as RoomWidgetRoomObjectUpdateEvent);
2021-06-13 22:01:22 +02:00
2021-06-17 19:23:34 +02:00
// setDimmerData(prevState =>
// {
// if(!prevState || (widgetEvent.id !== prevState.objectId) || (widgetEvent.category !== prevState.category)) return prevState;
2021-06-13 22:01:22 +02:00
2021-06-17 19:23:34 +02:00
// return null;
// });
// return;
// }
// case RoomWidgetDimmerUpdateEvent.RWDUE_PRESETS: {
// const widgetEvent = (event as RoomWidgetDimmerUpdateEvent);
2021-06-13 22:01:22 +02:00
2021-06-17 19:23:34 +02:00
// console.log(widgetEvent);
// return;
// }
// case RoomWidgetDimmerStateUpdateEvent.RWDSUE_DIMMER_STATE: {
// const widgetEvent = (event as RoomWidgetDimmerStateUpdateEvent);
2021-06-13 22:01:22 +02:00
2021-06-17 19:23:34 +02:00
// console.log(widgetEvent);
// return;
// }
// }
// }, []);
2021-06-13 22:01:22 +02:00
2021-06-17 19:23:34 +02:00
// useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_DIMMER, onNitroEvent);
// CreateEventDispatcherHook(RoomWidgetRoomObjectUpdateEvent.FURNI_REMOVED, props.events, onNitroEvent);
// CreateEventDispatcherHook(RoomWidgetDimmerUpdateEvent.RWDUE_PRESETS, props.events, onNitroEvent);
// CreateEventDispatcherHook(RoomWidgetDimmerStateUpdateEvent.RWDSUE_DIMMER_STATE, props.events, onNitroEvent);
2021-06-13 22:01:22 +02:00
const processAction = useCallback((type: string, value: string = null) =>
{
switch(type)
{
case 'close':
setDimmerData(null);
return;
}
}, []);
if(!dimmerData) return null;
return (
<NitroCardView className="nitro-dimmer">
<NitroCardHeaderView headerText={ LocalizeText('widget.dimmer.title') } onCloseClick={ event => processAction('close') } />
<NitroCardContentView>
</NitroCardContentView>
</NitroCardView>
);
}