Marco
dfdae284ff
Show checkmate screen, once the server sends the 'gameEnded' message. Additionally, show an icon that lets users copy the passphrase to the clipboard.
53 lines
1.3 KiB
Dart
53 lines
1.3 KiB
Dart
import 'package:flutter/widgets.dart';
|
|
import 'package:go_router/go_router.dart';
|
|
import 'package:mchess/pages/chess_game.dart';
|
|
import 'package:mchess/pages/lobby_selector.dart';
|
|
import 'package:mchess/pages/host_game.dart';
|
|
|
|
final navigatorKey = GlobalKey<NavigatorState>();
|
|
|
|
class ChessAppRouter {
|
|
static final ChessAppRouter _instance = ChessAppRouter._internal();
|
|
|
|
ChessAppRouter._internal();
|
|
|
|
static ChessAppRouter getInstance() {
|
|
return _instance;
|
|
}
|
|
|
|
final router = GoRouter(
|
|
navigatorKey: navigatorKey,
|
|
debugLogDiagnostics: true,
|
|
routes: [
|
|
GoRoute(
|
|
path: '/',
|
|
name: 'lobbySelector',
|
|
builder: (context, state) {
|
|
return const LobbySelector();
|
|
},
|
|
routes: [
|
|
GoRoute(
|
|
path: 'host',
|
|
name: 'host',
|
|
builder: (context, state) {
|
|
return const HostGameWidget();
|
|
}),
|
|
GoRoute(
|
|
path: 'game',
|
|
name: 'game',
|
|
builder: (context, state) {
|
|
var args = state.extra as ChessGameArguments;
|
|
|
|
return ChessGame(
|
|
lobbyID: args.lobbyID,
|
|
playerID: args.playerID,
|
|
passphrase: args.passphrase,
|
|
);
|
|
},
|
|
)
|
|
],
|
|
),
|
|
],
|
|
);
|
|
}
|