diff --git a/src/components/time/atoms/DatetimePentagon.js b/src/components/time/atoms/DatetimePentagon.js new file mode 100644 index 0000000..233f54f --- /dev/null +++ b/src/components/time/atoms/DatetimePentagon.js @@ -0,0 +1,20 @@ +import React from "react"; + +const DatetimePentagon = ({ x, y, r, transform, onSelect, styleProps }) => { + const s = (r * 2) / 3; + return ( + + ); +}; + +export default DatetimePentagon; diff --git a/src/components/time/atoms/DatetimeSquare.js b/src/components/time/atoms/DatetimeSquare.js index d9e3a71..6f195d7 100644 --- a/src/components/time/atoms/DatetimeSquare.js +++ b/src/components/time/atoms/DatetimeSquare.js @@ -14,11 +14,11 @@ const DatetimeSquare = ({ onClick={onSelect} className="event" x={x} - y={y - r} + y={y} style={styleProps} width={r} height={r} - transform={`rotate(45, ${x}, ${y})`} + transform={transform} /> ); }; diff --git a/src/components/time/atoms/DatetimeStar.js b/src/components/time/atoms/DatetimeStar.js index a31ca31..60c590f 100644 --- a/src/components/time/atoms/DatetimeStar.js +++ b/src/components/time/atoms/DatetimeStar.js @@ -17,9 +17,10 @@ const DatetimeStar = ({ x={x} y={y - r} style={styleProps} - points={`${x},${y + s} ${x - s},${y - s} ${x + s},${y} ${x - s},${y} ${ - x + s - },${y - s}`} + points={`${x + s},${y - s} ${x - r},${y} ${x + r},${y} ${x - s},${ + y - s + } ${x},${y + s}`} + transform={transform} /> ); }; diff --git a/src/components/time/atoms/DatetimeTriangle.js b/src/components/time/atoms/DatetimeTriangle.js new file mode 100644 index 0000000..b94c42c --- /dev/null +++ b/src/components/time/atoms/DatetimeTriangle.js @@ -0,0 +1,18 @@ +import React from "react"; + +const DatetimeTriangle = ({ x, y, r, transform, onSelect, styleProps }) => { + const s = (r * 2) / 3; + return ( + + ); +}; + +export default DatetimeTriangle; diff --git a/src/components/time/atoms/Events.js b/src/components/time/atoms/Events.js index e7f4b34..ca11291 100644 --- a/src/components/time/atoms/Events.js +++ b/src/components/time/atoms/Events.js @@ -2,6 +2,8 @@ import React from "react"; import DatetimeBar from "./DatetimeBar"; import DatetimeSquare from "./DatetimeSquare"; import DatetimeStar from "./DatetimeStar"; +import DatetimeTriangle from "./DatetimeTriangle"; +import DatetimePentagon from "./DatetimePentagon"; import Project from "./Project"; import ColoredMarkers from "../../atoms/ColoredMarkers"; import { @@ -66,9 +68,46 @@ function renderDiamond(event, styles, props) { + ); +} + +function renderSquare(event, styles, props) { + return ( + + ); +} + +function renderTriangle(event, styles, props) { + return ( + + ); +} + +function renderPentagon(event, styles, props) { + return ( + ); } @@ -81,7 +120,7 @@ function renderStar(event, styles, props) { y={props.y} r={1.8 * props.eventRadius} styleProps={{ ...styles, fillRule: "nonzero" }} - transform="rotate(90)" + transform={`rotate(180, ${props.x}, ${props.y})`} /> ); } @@ -125,6 +164,12 @@ const TimelineEvents = ({ renderShape = renderDiamond; } else if (event.shape === "star") { renderShape = renderStar; + } else if (event.shape === "triangle") { + renderShape = renderTriangle; + } else if (event.shape === "pentagon") { + renderShape = renderPentagon; + } else if (event.shape === "square") { + renderShape = renderSquare; } else { renderShape = renderDot; } @@ -137,6 +182,7 @@ const TimelineEvents = ({ const y = getY({ ...event, category: cat }); const colour = event.colour ? event.colour : getCategoryColor(cat.title); + const styles = { fill: colour, fillOpacity: y > 0 ? calcOpacity(1) : 0,