UNPKG

@gobstones/gs-board-tsx

Version:
71 lines (70 loc) 2.17 kB
import React from "react"; import { AttireContent } from "./Cell"; import { Board } from "./Board"; import { AbstractTheme, ClassicTheme, ThemeStringType } from "./Theme"; import { LanguageStringType } from "./Language"; import { CellInfo } from "@gobstones/gobstones-gbb-parser"; import { Attire, AttireJSON } from "./Attire"; declare type BoardState = { header: CellLocation; cells: Board; attire: Attire; theme: AbstractTheme; }; export declare type CellLocation = [number, number]; declare type BoardProps = { columnsQuantity: number; rowsQuantity: number; header: CellLocation; editable: boolean; boardInfo?: CellInfo[][]; attire: AttireJSON; theme: ThemeStringType; language: LanguageStringType; }; export declare class BoardComponent extends React.Component<BoardProps, BoardState> { constructor(props: BoardProps); static defaultProps: { columnsQuantity: number; rowsQuantity: number; header: { x: number; y: number; }; editable: boolean; attire: AttireJSON; theme: ClassicTheme; language: string; }; componentDidMount(): void; componentWillUnmount(): void; render(): React.ReactElement; handleRightArrowClickRight(): void; handleRightArrowClickLeft(): void; handleTopArrowClickUp(): void; handleTopArrowClickDown(): void; handleChangeXSize(n: number): void; handleChangeYSize(n: number): void; resetHeader(): void; renderRightArrows(): JSX.Element; renderTopArrows(): JSX.Element; private mapColumnsBorder; private mapRaws; private mapColumnsContent; private handleAddBlue; private handleAddGreen; private handleAddBlack; getAttireFor(x: number, y: number): AttireContent; private handleAddRed; isHeader(x: number, y: number): boolean; handleKeyPressed(e: KeyboardEvent): void; private handleFileChange; private parseBoardFile; private handleRemoveBlue; private handleRemoveBlack; private handleRemoveGreen; private handleRemoveRed; private handleExportGBB; private handleThemeChange; } export {};