Keep track of tile state. Add support for canceling other tiles.

This commit is contained in:
Ian Gulliver
2015-12-28 21:07:46 -08:00
parent 0656aff2b7
commit f4497b23e5

View File

@@ -102,6 +102,15 @@ BabyStats.prototype.onMessage_ = function(e) {
};
/**
* @param {string} type
* @private
*/
BabyStats.prototype.findTile_ = function(type) {
return this.tiles_.find(function(tile) { return tile.type == type; });
};
/**
* @param {boolean} isEvent
* @param {Cosmopolite.typeMessage} message
@@ -116,7 +125,17 @@ BabyStats.prototype.handleMessage_ = function(isEvent, message) {
}
break;
default:
console.log('Unknown message type:', message);
var tile = this.findTile_(message.message.type);
if (tile) {
tile.lastSeen = message.created;
tile.canceled = false;
(tile.cancels || []).forEach(function(type) {
tile2 = this.findTile_(type);
tile2.canceled = true;
}.bind(this));
} else {
console.log('Unknown message type:', message);
}
break;
}
};