Private
Public Access
1
0

refactor grid control and grid field

This commit is contained in:
2016-10-12 22:18:10 +02:00
parent 91bf6aa737
commit ed41aaead0
2 changed files with 42 additions and 30 deletions

View File

@@ -11,7 +11,7 @@ class GridControl extends React.Component {
this.state = {
grid: grid.state.grid,
updated: [],
updatedFieldCache: [],
lastClicked: {
red: null,
blue: null
@@ -38,27 +38,21 @@ class GridControl extends React.Component {
});
/**
* TODO ez azért kell, mert amíg nem fut le a showAppropriateFields(), addig nem updatelődik a GridField.state
* It must be cached because the GridField.state not updated until
* all showAppropriateFields() method runned out!!
*/
if (
this.state.grid[row][col] !== 0 &&
this.state.updated.indexOf(this.refString(row, col)) < 0 && !currentField.state.active
) {
this.state.updated.push(this.refString(row, col));
}
if (this.state.updatedFieldCache.indexOf(this.refString(row, col)) < 0 && !currentField.state.active) {
this.state.updatedFieldCache.push(this.refString(row, col));
if (
this.state.grid[row][col] === 0 &&
this.state.updated.indexOf(this.refString(row, col)) < 0 && !currentField.state.active
) {
this.state.updated.push(this.refString(row, col));
return {
row: row,
col: col
};
if (this.state.grid[row][col] === 0) {
return {
row: row,
col: col
};
}
}
}
return false;
}
@@ -83,8 +77,8 @@ class GridControl extends React.Component {
active: true
});
if (this.state.updated.indexOf(this.refString(row, col)) < 0) {
this.state.updated.push(this.refString(row, col));
if (this.state.updatedFieldCache.indexOf(this.refString(row, col)) < 0) {
this.state.updatedFieldCache.push(this.refString(row, col));
}
if (this.state.grid[row][col] === 0) {
@@ -167,7 +161,7 @@ class GridControl extends React.Component {
this.handleGridField(this.state.grid[coords[0]][coords[1]], coords[0], coords[1]);
}
renderGrid() {
renderGridFields() {
var grid = [];
for (var i = 0, j = this.state.grid.length; i < j; i++) {
@@ -193,7 +187,7 @@ class GridControl extends React.Component {
<UserControl ref="userControl" blue="Olcsó János" red="Eszet Lenke"/>
</div>
<div className="grid">
{this.renderGrid()}
{this.renderGridFields()}
</div>
</div>
);