import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:mchess/chess_bloc/chess_bloc.dart'; import 'package:mchess/connection/ws_connection.dart'; import 'package:mchess/chessapp/chess_board.dart'; class ChessApp extends StatelessWidget { const ChessApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'mChess', home: Scaffold( body: Container( decoration: const BoxDecoration( gradient: LinearGradient( begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [ Color.fromARGB(255, 20, 20, 20), Color.fromARGB(255, 30, 30, 30), Color.fromARGB(255, 40, 40, 40), ], ), ), child: Center( child: FittedBox( fit: BoxFit.contain, child: Column( children: [ Container( margin: const EdgeInsets.all(20), child: BlocProvider( create: (_) => ChessBloc.getInstance(), child: BlocBuilder( builder: (context, state) { return ChessBoard( bState: state, ); }, ), ), ), StreamBuilder( stream: ServerConnection.getInstance().channel.stream, builder: (context, snapshot) { return Text( style: const TextStyle(color: Colors.white), snapshot.data.toString()); }, ) ], ), ), ), ), floatingActionButton: const FloatingActionButton( onPressed: reconnect, child: Icon(Icons.connect_without_contact), ), ), ); } } void reconnect() { ServerConnection.getInstance().reconnect(); }