import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:frontend/providers/auth.dart';
import 'package:go_router/go_router.dart';
import 'package:logging/logging.dart';

final logger = Logger('GameRoomHome');

class GameRoomHome extends ConsumerStatefulWidget {
  const GameRoomHome({super.key, this.roomUuid});

  final String? roomUuid;

  @override
  ConsumerState<GameRoomHome> createState() => _GameRoomHomeState();
}

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'),
      ),
    );
  }
}