From d308d35069911bfa938bcc36aace7383bba3f8bd Mon Sep 17 00:00:00 2001 From: Tissevert Date: Mon, 13 Jan 2020 23:08:20 +0100 Subject: [PATCH] Remove 'itemMaker' parameter to Table instanciator since it all amounts to copying all the object passed --- js/GUI/Screen/Hall/Games.js | 10 +++++----- js/GUI/Screen/Hall/Players.js | 8 ++++---- js/Games.js | 11 +---------- js/Room.js | 11 ++--------- js/Table.js | 9 +++++---- 5 files changed, 17 insertions(+), 32 deletions(-) diff --git a/js/GUI/Screen/Hall/Games.js b/js/GUI/Screen/Hall/Games.js index e8eb5bf..358d5da 100644 --- a/js/GUI/Screen/Hall/Games.js +++ b/js/GUI/Screen/Hall/Games.js @@ -43,21 +43,21 @@ function showGame(game) { function gameProposal(game) { var properties = { - textContent: I18n.get('proposedGame')(game.yourTurn, game.vs.name), + textContent: I18n.get('proposedGame')(game.value.yourTurn, game.value.vs.name), }; - if(game.yourTurn) { - properties.onClick = answerDialog(game.vs.id); + if(game.value.yourTurn) { + properties.onClick = answerDialog(game.value.vs.id); properties.class = 'clickable'; } return [Dom.make('span', properties)]; } function pendingGame(game) { - var status = players.get(game.vs.id) != undefined ? 'active' : 'inactive' + var status = players.get(game.value.vs.id) != undefined ? 'active' : 'inactive' return [ Dom.make('span', { textContent: status}), Dom.make('a', { - textContent: I18n.get('pendingGame')(game.yourTurn, game.vs.name), + textContent: I18n.get('pendingGame')(game.value.yourTurn, game.value.vs.name), href: '/game/' + game.key }) ]; diff --git a/js/GUI/Screen/Hall/Players.js b/js/GUI/Screen/Hall/Players.js index 10f1df6..9a8e220 100644 --- a/js/GUI/Screen/Hall/Players.js +++ b/js/GUI/Screen/Hall/Players.js @@ -34,8 +34,8 @@ function initDOM() { function showPlayer(player) { return Dom.make('li', { - textContent: player.name, - onClick: function() {form.root.them.value = player.name; refresh();}, + textContent: player.value, + onClick: function() {form.root.them.value = player.value; refresh();}, class: 'clickable' }); } @@ -44,7 +44,7 @@ function refresh() { var name = form.root.them.value; them = null; var filtered = players.getAll( - function(player) {return player.name.match(name);} + function(player) {return player.value.match(name);} ); list.refresh(filtered); var exact = filtered.find(exactMatch(name)); @@ -62,6 +62,6 @@ function refresh() { function exactMatch(name) { return function(player) { - return player.name === name; + return player.value === name; }; } diff --git a/js/Games.js b/js/Games.js index 793740b..9c19a08 100644 --- a/js/Games.js +++ b/js/Games.js @@ -5,7 +5,7 @@ import Session; import Table; import Time; -var entries = Table.make(makeEntry, 'date'); +var entries = Table.make(function(o) {return o.value.date;}); initMessageHandlers(); return { @@ -20,15 +20,6 @@ function entry(state) { }); } -function makeEntry(key, config) { - return { - key: key, - vs: config.vs, - yourTurn: config.yourTurn, - date: config.date - }; -} - function initMessageHandlers() { Messaging.addEventListener(["Game"], function(o) { var gameID = o.state.public.gameState.gameID; diff --git a/js/Room.js b/js/Room.js index f996dc8..07d90cd 100644 --- a/js/Room.js +++ b/js/Room.js @@ -2,7 +2,7 @@ import Messaging; import Session; import Table; -var players = Table.make(player, 'name'); +var players = Table.make(function(o) {return o.value}); initMessageHandlers(); return { @@ -11,14 +11,7 @@ return { }; function opponent(key) { - return {id: key, name: players.get(key).name}; -} - -function player(key, name) { - return { - key: key, - name: name - }; + return {id: key, name: players.get(key)}; } function initMessageHandlers() { diff --git a/js/Table.js b/js/Table.js index daae9e5..334f92f 100644 --- a/js/Table.js +++ b/js/Table.js @@ -1,7 +1,7 @@ import of from UnitJS.Fun; import {compare, of, proj} from UnitJS.Fun; -function Table(itemMaker, sortCriterion) { +function Table(sortCriterion) { var items = {}; return { get: get, @@ -17,13 +17,14 @@ function Table(itemMaker, sortCriterion) { function getAll(criterion) { return Object.keys(items) - .map(of(items)) + .map(function(key) {return {key: key, value: items[key]};}) .filter(criterion || function() {return true;}) - .sort(compare(proj(sortCriterion))); + .sort(compare(sortCriterion)); } + function insert(key, value) { - items[key] = itemMaker(key, value); + items[key] = value; } function insertAll(newItems) {