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

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

class Home extends StatefulWidget {
  const Home({super.key});

  static const String id = 'home';

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

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

    Data myProvider = Provider.of<Data>(context, listen: false);
    myProvider.initParametersValues();
  }

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

    final List<Widget> menuActions = [];

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

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