// lib/ui/screens/lobby_screen.dart
import 'package:flutter/material.dart';
import 'package:lasertag_app/constants.dart';
import 'package:provider/provider.dart';
import '../../models/device_model.dart';
import '../../providers/device_provider.dart';
import '../widgets/leader_info_dialog.dart';

class LobbyScreen extends StatelessWidget {
  final LasertagDevice leaderDevice;
  const LobbyScreen({super.key, required this.leaderDevice});

  @override
  Widget build(BuildContext context) {
    final colorScheme = Theme.of(context).colorScheme;

    return Scaffold(
      appBar: AppBar(
        title: const Text("Spiel-Lobby"),
        // elevation: 0 sorgt dafür, dass AppBar und Header nahtlos ineinander übergehen
        elevation: 0,
        backgroundColor: colorScheme.primaryContainer,
        foregroundColor: colorScheme.onPrimaryContainer,
        automaticallyImplyLeading: false,
      ),
      body: Column(
        children: [
          // Header-Sektion: Volle Breite, Hintergrundfarbe aus dem Theme
          Material(
            color: colorScheme.primaryContainer,
            child: InkWell(
              onTap: () => showDialog(
                context: context,
                builder: (context) => LeaderInfoDialog(device: leaderDevice),
              ),
              child: ListTile(
                contentPadding: const EdgeInsets.symmetric(horizontal: 24, vertical: 8),
                leading: Icon(
                  Icons.hub,
                  color: colorScheme.onPrimaryContainer,
                  size: 32,
                ),
                title: Text(
                  leaderDevice.name,
                  style: TextStyle(
                    fontWeight: FontWeight.bold,
                    fontSize: 18,
                    color: colorScheme.onPrimaryContainer,
                  ),
                ),
                subtitle: Text(
                  "Status: LOBBY",
                  style: TextStyle(
                    color: colorScheme.onPrimaryContainer.withValues(alpha: 0.8),
                  ),
                ),
                // Das Info-Icon als visueller Hinweis auf die Klickbarkeit
                trailing: Icon(
                  Icons.info_outline,
                  color: colorScheme.onPrimaryContainer.withValues(alpha: 0.6),
                ),
              ),
            ),
          ),

          // Keine Divider mehr hier für einen cleanen Übergang
          Expanded(
            child: Center(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  Icon(
                    Icons.radar,
                    size: 64,
                    color: colorScheme.outlineVariant,
                  ),
                  const SizedBox(height: 16),
                  const Text("Suche Teilnehmer im Netzwerk..."),
                ],
              ),
            ),
          ),

          // Action Buttons am unteren Rand
          _buildBottomActions(context),
        ],
      ),
    );
  }

  Widget _buildBottomActions(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(24.0),
      child: Row(
        children: [
          Expanded(
            child: OutlinedButton(
              onPressed: () async {
                final provider = context.read<DeviceProvider>();
                if (provider.activeConfig != null) {
                  // Leader zurück auf IDLE setzen
                  final idleConfig = provider.activeConfig!.copyWith(
                    systemState: LasertagConfig.sysStateIdle,
                  );
                  await provider.provisionDevice(leaderDevice, idleConfig);
                }
                if (context.mounted) Navigator.pop(context);
              },
              child: const Text("Abbrechen"),
),
          ),
          const SizedBox(width: 16),
          Expanded(
            child: ElevatedButton(
              onPressed: null, // Deaktiviert, bis Nodes gefunden werden
              child: const Text("Match starten"),
            ),
          ),
        ],
      ),
    );
  }
}