📄 PlayersControl.js
/home/palash/git/site/node_modules/new_site/src/components/tic-tac-slide/PlayersControl.js
Language: js • Lines: 43
import { Icon2CircleFill, Icon3CircleFill, Icon4CircleFill, Icon5CircleFill, Icon6CircleFill, PeopleFill } from "react-bootstrap-icons"
import { Col, Row } from "react-bootstrap"
import { useContext } from "react";
import { AppContext } from "./AppContext";
import getMessageText from "./messages";

export default function PlayersControl({ resetGrid }) {
    const { colors, allColors, setColors } = useContext(AppContext);
    const renderPlayers = () => {
        switch (colors.length) {
            case 2: return <Icon2CircleFill />;
            case 3: return <Icon3CircleFill />;
            case 4: return <Icon4CircleFill />;
            case 5: return <Icon5CircleFill />;
            case 6: return <Icon6CircleFill />;
            default: return <></>;
        }
    };
    return <Row className="align-items-center" title={getMessageText("NUM_PLAYERS")}>
        <Col xs={2}>
            <PeopleFill size={30} values={colors.length} color='white' />
        </Col>
        <Col xs={6} >
            <input
                type="range"
                className="form-control"
                value={colors.length}
                max={6}
                min={2}
                step={1}
                onChange={(e) => {
                    const value = parseInt(e.target.value);
                    var playerColors = allColors.slice(0, value);
                    setColors(playerColors);
                    resetGrid();
                }}
                placeholder="Number of players" />
        </Col>
        <Col xs={4}>
            {renderPlayers()}
        </Col>
    </Row>
}