import 'package:flutter/material.dart';
import 'package:tetrisdual/layout/game.dart';
import 'package:tetrisdual/layout/parameters.dart';
import 'package:tetrisdual/provider/data.dart';
import 'package:tetrisdual/utils/game_utils.dart';
import 'package:provider/provider.dart';
import 'package:overlay_support/overlay_support.dart';

class Home extends StatefulWidget {
  static const String id = 'home';

  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    Data myProvider = Provider.of<Data>(context);
    double boardWidth = MediaQuery.of(context).size.width;

    List<Widget> menuActions = [];

    if (myProvider.isGameRunning) {
      menuActions = [
        TextButton(
          child: Container(
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(4),
              border: Border.all(
                color: Colors.blue,
                width: 4,
              ),
            ),
            child: Image(
              image: AssetImage('assets/icons/button_back.png'),
              fit: BoxFit.fill,
            ),
          ),
          onPressed: () => toast('Long press to quit game...'),
          onLongPress: () => GameUtils.quitGame(myProvider),
        ),
      ];
    }

    return Scaffold(
      appBar: AppBar(
        actions: menuActions,
      ),
      body: SafeArea(
        child: Center(
          child: myProvider.isGameRunning
              ? Game.buildGameWidget(myProvider, boardWidth)
              : Parameters.buildParametersSelector(myProvider),
        ),
      ),
    );
  }
}