Marco
7a51e71767
Additionally, we set some groundwork for storing the game data (lobby id, player id, passphrase) in permanent storage in order to reconnect with it later.
53 lines
1.3 KiB
Dart
53 lines
1.3 KiB
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';
|
|
import 'package:mchess/pages/prepare_random_game.dart';
|
|
|
|
class ChessAppRouter {
|
|
static final ChessAppRouter _instance = ChessAppRouter._internal();
|
|
|
|
ChessAppRouter._internal();
|
|
|
|
static ChessAppRouter getInstance() {
|
|
return _instance;
|
|
}
|
|
|
|
final router = GoRouter(
|
|
routes: [
|
|
GoRoute(
|
|
path: '/',
|
|
name: 'lobbySelector',
|
|
builder: (context, state) {
|
|
return const LobbySelector();
|
|
},
|
|
),
|
|
GoRoute(
|
|
path: '/prepareRandom',
|
|
name: 'prepareRandom',
|
|
builder: (context, state) {
|
|
return const PrepareRandomGameWidget();
|
|
}),
|
|
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,
|
|
);
|
|
},
|
|
)
|
|
],
|
|
);
|
|
}
|