import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:lucide_icons/lucide_icons.dart';
import '../models/device_status.dart';
import '../config/theme.dart';

class StatusBar extends StatelessWidget {
  final DeviceStatus status;
  final VoidCallback? onTap;

  const StatusBar({
    super.key,
    required this.status,
    this.onTap,
  });

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: onTap,
      child: ClipRRect(
        borderRadius: BorderRadius.circular(20),
        child: BackdropFilter(
          filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
          child: Container(
            height: 32, // h-7 is ~28px, adjusted for touch target
            padding: const EdgeInsets.symmetric(horizontal: 12),
            decoration: BoxDecoration(
              color: const Color(0xFF1A1625).withOpacity(0.8),
              borderRadius: BorderRadius.circular(20),
              border: Border.all(color: Colors.white.withOpacity(0.1)),
            ),
            child: Row(
              mainAxisSize: MainAxisSize.min,
              children: [
                // Connection Status Icon
                if (status.connected) ...[
                   // TODO: Add ping animation if needed using flutter_animate
                   const Icon(LucideIcons.bluetooth, size: 14, color: AppTheme.neonGreen),
                ] else ...[
                   Container(
                     width: 6, 
                     height: 6, 
                     decoration: const BoxDecoration(color: Colors.grey, shape: BoxShape.circle),
                   ),
                ],

                const SizedBox(width: 8),
                Container(width: 1, height: 10, color: Colors.white.withOpacity(0.1)),
                const SizedBox(width: 8),

                // Battery Status
                if (status.connected) ...[
                  Text(
                    '${status.battery.floor()}%',
                    style: TextStyle(
                      fontFamily: 'monospace',
                      fontSize: 12,
                      fontWeight: FontWeight.bold,
                      color: status.battery < 20 ? Theme.of(context).colorScheme.error : Colors.white,
                    ),
                  ),
                  const SizedBox(width: 4),
                  Icon(
                    LucideIcons.zap,
                    size: 12,
                    color: status.battery < 20 ? Theme.of(context).colorScheme.error : AppTheme.neonPurple,
                  ),
                ] else ...[
                   const Text(
                     '未连接',
                     style: TextStyle(fontSize: 10, color: Colors.grey),
                   ),
                ],
              ],
            ),
          ),
        ),
      ),
    );
  }
}
