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>
|
|
|
|
);
|
|
|
|
}
|