modaq
Version:
Quiz Bowl Reader using TypeScript, React, and MobX
82 lines • 3.72 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.hideDialog = exports.validatePlayer = exports.changeNewName = exports.renamePlayer = void 0;
const NewGameValidator = __importStar(require("../../state/NewGameValidator"));
const AppState_1 = require("../../state/AppState");
require("../../state/GameState");
const TeamState_1 = require("../../state/TeamState");
require("../../state/RenamePlayerDialogState");
function renamePlayer() {
const appState = AppState_1.AppState.instance;
const game = appState.game;
const renameDialogState = appState.uiState.dialogState.renamePlayerDialog;
if (renameDialogState == undefined) {
return;
}
renameDialogState.clearErrorMessage();
const errorMessage = validatePlayer();
if (errorMessage != undefined) {
renameDialogState.setErrorMessage(errorMessage);
return;
}
const succeeded = game.tryUpdatePlayerName(renameDialogState.player.teamName, renameDialogState.player.name, renameDialogState.newName);
if (!succeeded) {
renameDialogState.setErrorMessage("Couldn't rename the player. Make sure the name is unique on the team and try again.");
return;
}
hideDialog();
}
exports.renamePlayer = renamePlayer;
function changeNewName(newName) {
const appState = AppState_1.AppState.instance;
const renamePlayerDialog = appState.uiState.dialogState.renamePlayerDialog;
if (renamePlayerDialog == undefined) {
return;
}
renamePlayerDialog.setName(newName);
}
exports.changeNewName = changeNewName;
function validatePlayer() {
const appState = AppState_1.AppState.instance;
const renamePlayerDialog = appState.uiState.dialogState.renamePlayerDialog;
if (renamePlayerDialog == undefined) {
return "Dialog is closed";
}
const newPlayer = new TeamState_1.Player(renamePlayerDialog.newName, renamePlayerDialog.player.teamName, renamePlayerDialog.player.isStarter);
// Trim the player name on submit, so the user can type in spaces while creating the name in the UI
const trimmedPlayerName = newPlayer.name.trim();
if (trimmedPlayerName.length === 0) {
return "Player name cannot be blank";
}
if (appState.game.teamNames.indexOf(newPlayer.teamName) === -1) {
return "Team doesn't exist";
}
const playersOnTeam = [...appState.game.getPlayers(newPlayer.teamName), newPlayer];
return NewGameValidator.newPlayerNameUnique(playersOnTeam, trimmedPlayerName);
}
exports.validatePlayer = validatePlayer;
function hideDialog() {
const appState = AppState_1.AppState.instance;
appState.uiState.dialogState.hideRenamePlayerDialog();
}
exports.hideDialog = hideDialog;
//# sourceMappingURL=RenamePlayerDialogController.js.map