import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

import 'package:minehunter/cubit/game_cubit.dart';
import 'package:minehunter/models/game/game.dart';
import 'package:minehunter/models/types.dart';
import 'package:minehunter/ui/widgets/game/cell.dart';

class GameBoardWidget extends StatelessWidget {
  const GameBoardWidget({super.key});

  @override
  Widget build(BuildContext context) {
    return BlocBuilder<GameCubit, GameState>(
      builder: (BuildContext context, GameState gameState) {
        final Game currentGame = gameState.currentGame;

        final Board board = currentGame.board;
        final Color borderColor = currentGame.reportMode ? Colors.blue : Colors.black;

        return Container(
          margin: const EdgeInsets.all(2),
          padding: const EdgeInsets.all(2),
          child: Column(
            children: [
              Container(
                decoration: BoxDecoration(
                  color: borderColor,
                  borderRadius: BorderRadius.circular(2),
                  border: Border.all(
                    color: borderColor,
                    width: 2,
                  ),
                ),
                child: Table(
                  defaultColumnWidth: const IntrinsicColumnWidth(),
                  children: [
                    for (int row = 0; row < currentGame.sizeVertical; row++)
                      TableRow(
                        children: [
                          for (int col = 0; col < currentGame.sizeHorizontal; col++)
                            Column(
                              children: [
                                CellWidget(cell: board[row][col], row: row, col: col)
                              ],
                            ),
                        ],
                      ),
                  ],
                ),
              ),
            ],
          ),
        );
      },
    );
  }
}