summaryrefslogtreecommitdiff
path: root/src/components/app/map/groups/RoomGroup.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/app/map/groups/RoomGroup.js')
-rw-r--r--src/components/app/map/groups/RoomGroup.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/components/app/map/groups/RoomGroup.js b/src/components/app/map/groups/RoomGroup.js
new file mode 100644
index 00000000..18a6bd84
--- /dev/null
+++ b/src/components/app/map/groups/RoomGroup.js
@@ -0,0 +1,48 @@
+import React from "react";
+import {Group} from "react-konva";
+import GrayContainer from "../../../../containers/app/map/GrayContainer";
+import TileContainer from "../../../../containers/app/map/TileContainer";
+import WallContainer from "../../../../containers/app/map/WallContainer";
+import Shapes from "../../../../shapes/index";
+
+const RoomGroup = ({room, interactionLevel, currentRoomInConstruction, onClick}) => {
+ if (currentRoomInConstruction === room.id) {
+ return (
+ <Group onClick={onClick}>
+ {room.tileIds.map(tileId => (
+ <TileContainer key={tileId} tileId={tileId} newTile={true}/>
+ ))}
+ </Group>
+ );
+ }
+
+ return (
+ <Group onClick={onClick}>
+ {(() => {
+ if ((interactionLevel.mode === "RACK" || interactionLevel.mode === "MACHINE")
+ && interactionLevel.roomId === room.id) {
+ return [
+ room.tileIds
+ .filter(tileId => tileId !== interactionLevel.tileId)
+ .map(tileId => <TileContainer key={tileId} tileId={tileId}/>),
+ <GrayContainer key={-1}/>,
+ room.tileIds
+ .filter(tileId => tileId === interactionLevel.tileId)
+ .map(tileId => <TileContainer key={tileId} tileId={tileId}/>)
+ ];
+ } else {
+ return room.tileIds.map(tileId => (
+ <TileContainer key={tileId} tileId={tileId}/>
+ ));
+ }
+ })()}
+ <WallContainer roomId={room.id}/>
+ </Group>
+ );
+};
+
+RoomGroup.propTypes = {
+ room: Shapes.Room,
+};
+
+export default RoomGroup;