Initial web socket client support
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:frontend/providers/auth.dart';
|
||||
import 'package:frontend/providers/game_messages.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
@@ -18,25 +19,19 @@ class GameRoomHome extends ConsumerStatefulWidget {
|
||||
class _GameRoomHomeState extends ConsumerState<GameRoomHome> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final jwtAsync = ref.watch(jwtNotifierProvider);
|
||||
return Scaffold(
|
||||
body: jwtAsync.when(
|
||||
data: (jwt) {
|
||||
if (jwt == null || jwt.roomUuid != widget.roomUuid) {
|
||||
logger.fine('Tried to open room, but not authenticated / wrong room');
|
||||
// return home
|
||||
context.go('/');
|
||||
}
|
||||
return Column(
|
||||
children: [
|
||||
Text('Authenticated.'),
|
||||
Text('Welcome to room ${widget.roomUuid}'),
|
||||
],
|
||||
);
|
||||
},
|
||||
loading: () => CircularProgressIndicator(),
|
||||
error: (e, st) => Text('$e, $st'),
|
||||
),
|
||||
final jwt = ref.watch(jwtBodyProvider);
|
||||
if (jwt == null || jwt.roomUuid != widget.roomUuid) {
|
||||
logger.fine('Tried to open room, but not authenticated / wrong room');
|
||||
// return home
|
||||
context.go('/');
|
||||
}
|
||||
// enstablish ws connection at /room/roomCode/ws and save to gameMessageProvider
|
||||
ref.read(gameMessageNotifierProvider.notifier).connect(jwt!.roomUuid);
|
||||
return Column(
|
||||
children: [
|
||||
Text('Authenticated.'),
|
||||
Text('Welcome to room ${widget.roomUuid}'),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user