Nest function parameters into objects

This commit is contained in:
Manuel Thalmann 2022-12-15 21:42:21 +01:00
parent e5fddf7a7d
commit dedf7886e5

View file

@ -67,7 +67,7 @@ export function App(game)
}, },
[ [
Board, Board,
game.board { board: game.board }
], ],
[ [
"div", "div",
@ -83,13 +83,13 @@ export function App(game)
/** /**
* Renders an element which represents the specified {@link board `board`}. * Renders an element which represents the specified {@link board `board`}.
* *
* @param {Board} board * @param {{ board: Board }} board
* The board represented in this element. * The board represented in this element.
* *
* @returns {NodeDescriptor} * @returns {NodeDescriptor}
* The rendered element. * The rendered element.
*/ */
export function Board(board) export function Board({ board })
{ {
let fields = board.flatMap((row) => row); let fields = board.flatMap((row) => row);
@ -99,7 +99,7 @@ export function Board(board)
...fields.map( ...fields.map(
(field) => (field) =>
{ {
return /** @type {NodeDescriptor} */([Field, field]); return /** @type {NodeDescriptor} */([Field, { field }]);
}), }),
["div", { style: "clear: both;" }] ["div", { style: "clear: both;" }]
]; ];
@ -108,13 +108,13 @@ export function Board(board)
/** /**
* Renders an element which represents the specified {@link field `field`}. * Renders an element which represents the specified {@link field `field`}.
* *
* @param {CellOwner} field * @param {{ field: CellOwner }} field
* The field to represent. * The field to represent.
* *
* @returns {NodeDescriptor} * @returns {NodeDescriptor}
* The rendered element. * The rendered element.
*/ */
export function Field(field) export function Field({ field })
{ {
return [ return [
"div", "div",
@ -143,23 +143,23 @@ export function MenuBar()
return [ return [
"div", "div",
{ className: "menu-bar" }, { className: "menu-bar" },
[Button, ["New Game", { className: newGameClass }]], [Button, { content: ["New Game", { className: newGameClass }] }],
[Button, ["Save Game", { className: saveGameClass }]], [Button, { content: ["Save Game", { className: saveGameClass }] }],
[Button, ["Load Game", { className: loadGameClass }]], [Button, { content: ["Load Game", { className: loadGameClass }] }],
[Button, ["Undo Last Move", { className: undoClass }]] [Button, { content: ["Undo Last Move", { className: undoClass }] }]
]; ];
} }
/** /**
* Renders a button. * Renders a button.
* *
* @param {...ElementDescriptor[1][]} content * @param {{ content: ElementDescriptor[1][] }} content
* The settings of the button. * The settings of the button.
* *
* @returns {NodeDescriptor} * @returns {NodeDescriptor}
* The rendered element. * The rendered element.
*/ */
export function Button(content) export function Button({ content })
{ {
return [ return [
"button", "button",