import 'package:flutter/material.dart';
import 'package:sense_the_rhythm/utils/esense_input.dart';
import 'package:sense_the_rhythm/widgets/esense_connect_dialog.dart';

class ConnectionStatusButton extends StatelessWidget {
  final String deviceStatus;
  const ConnectionStatusButton(
    this.deviceStatus, {
    super.key,
  });

  @override
  Widget build(BuildContext context) {
    return FilledButton.icon(
        style: ButtonStyle(
            backgroundColor: WidgetStateProperty.all(
                ESenseInput.instance.connected ? Colors.green : Colors.grey),
            padding:
                WidgetStateProperty.all(EdgeInsets.symmetric(horizontal: 8.0))),
        onPressed: () => showDialog(
              context: context,
              builder: (BuildContext context) {
                return ESenseConnectDialog(
                  deviceStatus: ESenseInput.instance.deviceStatus,
                  connect: (String name) {
                    ESenseInput.instance.connectToESense(name);
                  },
                  disconnect: () {
                    ESenseInput.instance.eSenseManager.disconnect();
                  },
                );
              },
            ),
        label: Text(deviceStatus),
        iconAlignment: IconAlignment.end,
        icon: Icon(ESenseInput.instance.connected
            ? Icons.bluetooth_connected
            : Icons.bluetooth));
  }
}
