aboutsummaryrefslogtreecommitdiff
path: root/src/PaintArea.js
diff options
context:
space:
mode:
authorMartin Ashby <martin@martin-laptop.lan>2018-05-17 20:17:01 +0100
committerMartin Ashby <martin@martin-laptop.lan>2018-05-17 20:17:01 +0100
commit10e7ce5764b3b456e1f909cd6b6a90f076c2e014 (patch)
treed9344bfa3e271ef179b2ea969c27bf4b39bfe260 /src/PaintArea.js
parente9ee34abf84a10911b2c6041534c2df7f91f052a (diff)
downloadunicornpaint-10e7ce5764b3b456e1f909cd6b6a90f076c2e014.tar.gz
unicornpaint-10e7ce5764b3b456e1f909cd6b6a90f076c2e014.tar.bz2
unicornpaint-10e7ce5764b3b456e1f909cd6b6a90f076c2e014.tar.xz
unicornpaint-10e7ce5764b3b456e1f909cd6b6a90f076c2e014.zip
Fixed rotation problem. Added rotate function. Added docker file
Diffstat (limited to 'src/PaintArea.js')
-rw-r--r--src/PaintArea.js39
1 files changed, 22 insertions, 17 deletions
diff --git a/src/PaintArea.js b/src/PaintArea.js
index 1ffec83..3b64beb 100644
--- a/src/PaintArea.js
+++ b/src/PaintArea.js
@@ -1,4 +1,5 @@
import React, { Component } from 'react'
+import { rgb, getPixel } from './Utils'
/**
* Expects props:
@@ -44,29 +45,33 @@ export default class PaintArea extends Component {
}
render() {
- let cells = this.props.data.map((row, iy) => {
- let rowCells = row.map((cell, ix) => {
- let r = cell[0]
- let g = cell[1]
- let b = cell[2]
- return <td
- onMouseMove={() => this.handleMouseMove(ix, iy)}
- onClick={() => this.props.onTool(ix, iy)}
- className="paintareacell"
- style={{
- background: `rgb(${r},${g},${b})`
- }}
- key={(ix * 100000) + iy}/>
- })
- return <tr key={iy}>{rowCells}</tr>
- })
+ let data = this.props.data
+ let height = data[0] ? data[0].length : 0
+ let rows = []
+ for (var y=height-1; y>=0; y--) {
+ let cells = []
+ for (var x=0; x<data.length; x++) {
+ let {r, g, b} = rgb(getPixel(x, y, data))
+ let ix = x
+ let iy = y
+ cells.push(<td
+ onMouseMove={() => this.handleMouseMove(ix, iy)}
+ onClick={() => this.props.onTool(ix, iy)}
+ className="paintareacell"
+ style={{
+ background: `rgb(${r},${g},${b})`
+ }}
+ key={(ix * 100000) + iy}/>)
+ }
+ rows.push(<tr key={y}>{cells}</tr>)
+ }
return (
<table
className="paintarea"
draggable={false}>
<tbody>
- {cells}
+ {rows}
</tbody>
</table>
)