summaryrefslogtreecommitdiff
path: root/src/components/map/groups/RoomGroup.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/map/groups/RoomGroup.js')
-rw-r--r--src/components/map/groups/RoomGroup.js43
1 files changed, 30 insertions, 13 deletions
diff --git a/src/components/map/groups/RoomGroup.js b/src/components/map/groups/RoomGroup.js
index 179a24a2..b6c285e9 100644
--- a/src/components/map/groups/RoomGroup.js
+++ b/src/components/map/groups/RoomGroup.js
@@ -1,22 +1,39 @@
import React from "react";
import {Group} from "react-konva";
+import GrayContainer from "../../../containers/map/GrayContainer";
+import TileContainer from "../../../containers/map/TileContainer";
import Shapes from "../../../shapes/index";
import {deriveWallLocations} from "../../../util/tile-calculations";
import WallSegment from "../elements/WallSegment";
-import TileGroup from "./TileGroup";
-const RoomGroup = ({room, onClick}) => (
- <Group
- onClick={onClick}
- >
- {room.tiles.map(tile => (
- <TileGroup key={tile.id} tile={tile}/>
- ))}
- {deriveWallLocations(room).map((wallSegment, index) => (
- <WallSegment key={index} wallSegment={wallSegment}/>
- ))}
- </Group>
-);
+const RoomGroup = ({room, interactionLevel, onClick}) => {
+ return (
+ <Group
+ onClick={onClick}
+ >
+ {(() => {
+ if (interactionLevel.mode === "OBJECT" && interactionLevel.roomId === room.id) {
+ return [
+ room.tiles
+ .filter(tile => tile.id !== interactionLevel.tileId)
+ .map(tile => <TileContainer key={tile.id} tile={tile}/>),
+ <GrayContainer key={-1}/>,
+ room.tiles
+ .filter(tile => tile.id === interactionLevel.tileId)
+ .map(tile => <TileContainer key={tile.id} tile={tile}/>)
+ ];
+ } else {
+ return room.tiles.map(tile => (
+ <TileContainer key={tile.id} tile={tile}/>
+ ));
+ }
+ })()}
+ {deriveWallLocations(room).map((wallSegment, index) => (
+ <WallSegment key={index} wallSegment={wallSegment}/>
+ ))}
+ </Group>
+ );
+};
RoomGroup.propTypes = {
room: Shapes.Room,