summaryrefslogtreecommitdiff
path: root/src/components/app/map/groups/TileGroup.js
blob: 8f3953d7b09caeb5f42bf50d767ca04605b876b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import PropTypes from "prop-types";
import React from "react";
import { Group } from "react-konva";
import RackContainer from "../../../../containers/app/map/RackContainer";
import Shapes from "../../../../shapes/index";
import {
  ROOM_DEFAULT_COLOR,
  ROOM_IN_CONSTRUCTION_COLOR
} from "../../../../util/colors";
import { convertLoadToSimulationColor } from "../../../../util/simulation-load";
import RoomTile from "../elements/RoomTile";

const TileGroup = ({ tile, newTile, inSimulation, roomLoad, onClick }) => {
  let tileObject;
  switch (tile.objectType) {
    case "RACK":
      tileObject = <RackContainer tile={tile} />;
      break;
    default:
      tileObject = null;
  }

  let color = ROOM_DEFAULT_COLOR;
  if (newTile) {
    color = ROOM_IN_CONSTRUCTION_COLOR;
  } else if (inSimulation && roomLoad >= 0) {
    color = convertLoadToSimulationColor(roomLoad);
  }

  return (
    <Group onClick={() => onClick(tile)}>
      <RoomTile tile={tile} color={color} />
      {tileObject}
    </Group>
  );
};

TileGroup.propTypes = {
  tile: Shapes.Tile,
  newTile: PropTypes.bool
};

export default TileGroup;