import 'package:colors/layout/board_painter.dart';
import 'package:colors/provider/data.dart';
import 'package:colors/utils/board_utils.dart';
import 'package:flutter/material.dart';

class Board {
  static Container buildGameBoard(Data myProvider, double boardWidth) {
    return Container(
      margin: EdgeInsets.all(4),
      padding: EdgeInsets.all(4),
      child: Column(
        children: [
          Container(
            child: Center(
              child: GestureDetector(
                onTapUp: (details) {
                  double xTap = details.localPosition.dx;
                  double yTap = details.localPosition.dy;
                  int boardSize = myProvider.boardSize;
                  int col = xTap ~/ (boardWidth / boardSize);
                  int row = yTap ~/ (boardWidth / boardSize);
                  int cellValue = myProvider.getCellValue(col, row);
                  BoardUtils.fillBoardFromFirstCell(myProvider, cellValue);
                },
                child: Container(
                  child: CustomPaint(
                    size: Size(boardWidth, boardWidth),
                    willChange: false,
                    painter: BoardPainter(myProvider),
                    isComplex: true,
                  ),
                ),
              ),
            ),
          )
        ],
      ),
    );
  }
}