/** * React Component for the popup used to recruit new gang members. */ import React, { useState } from "react"; import { Modal } from "../../ui/React/Modal"; import { dialogBoxCreate } from "../../ui/React/DialogBox"; import { useGang } from "./Context"; import Typography from "@mui/material/Typography"; import TextField from "@mui/material/TextField"; import Button from "@mui/material/Button"; interface IRecruitPopupProps { open: boolean; onClose: () => void; onRecruit: () => void; } export function RecruitModal(props: IRecruitPopupProps): React.ReactElement { const gang = useGang(); const [name, setName] = useState(""); const disabled = name === "" || !gang.canRecruitMember(); function recruit(): void { if (disabled) return; // At this point, the only way this can fail is if you already // have a gang member with the same name if (!gang.recruitMember(name)) { dialogBoxCreate("You already have a gang member with this name!"); return; } props.onRecruit(); props.onClose(); } function onKeyUp(event: React.KeyboardEvent): void { if (event.keyCode === 13) recruit(); } function onChange(event: React.ChangeEvent): void { setName(event.target.value); } return ( Enter a name for your new Gang member:
Recruit ), }} />
); }