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

import '../layout/game.dart';
import '../layout/parameters.dart';
import '../provider/data.dart';
import '../utils/game_utils.dart';

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

  @override
  Widget build(BuildContext context) {
    Data myProvider = Provider.of<Data>(context);

    List<Widget> menuActions = [];

    if (myProvider.stateRunning) {
      menuActions = [
        FlatButton(
          child: Container(
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(4),
              border: Border.all(
                color: Colors.blue,
                width: 4,
              ),
            ),
            margin: EdgeInsets.all(8),
            child: Image(
              image: AssetImage('assets/icons/button_help.png'),
              fit: BoxFit.fill
            ),
          ),
          onPressed: () => GameUtils.showTip(myProvider),
        ),
        FlatButton(
          child: Container(
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(4),
              border: Border.all(
                color: myProvider.showConflicts ? Colors.white : Colors.blue,
                width: 4,
              ),
            ),
            margin: EdgeInsets.all(8),
            child: Image(
              image: AssetImage('assets/icons/button_show_conflicts.png'),
              fit: BoxFit.fill
            ),
          ),
          onPressed: () {
            myProvider.updateShowConflicts = !myProvider.showConflicts;
          },
        ),
        FlatButton(
          child: Container(
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(4),
              border: Border.all(
                color: Colors.blue,
                width: 4,
              ),
            ),
            margin: EdgeInsets.all(8),
            child: Image(
              image: AssetImage('assets/icons/button_back.png'),
              fit: BoxFit.fill
            ),
          ),
          onPressed: () => GameUtils.resetGame(myProvider),
        ),
      ];
    }

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