import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:overlay_support/overlay_support.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';

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();
  }

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

    final List<Widget> menuActions = [];

    if (myProvider.isGameRunning) {
      menuActions.add(TextButton(
        child: const 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: myProvider.isGameRunning
          ? Game.buildGameWidget(myProvider, screenWidth)
          : Parameters.buildParametersSelector(myProvider),
    );
  }
}