import 'package:flutter/material.dart'; import 'package:flutter_animate/flutter_animate.dart'; import 'package:get/get.dart'; import 'package:solian/providers/websocket.dart'; import 'package:solian/providers/auth.dart'; class BackgroundStateWidget extends StatelessWidget { const BackgroundStateWidget({super.key}); @override Widget build(BuildContext context) { final AuthProvider auth = Get.find(); final WebSocketProvider ws = Get.find(); return Obx(() { final disconnected = ws.isConnected.isFalse; final connecting = ws.isConnecting.isTrue; return Row(children: [ if (auth.isAuthorized.isTrue && disconnected && !connecting) IconButton( tooltip: [ if (ws.isConnected.isFalse) 'Lost Connection with Solar Network...', ].join('\n'), icon: const Icon(Icons.wifi_off) .animate(onPlay: (c) => c.repeat()) .fadeIn(duration: 800.ms) .then() .fadeOut(duration: 800.ms), onPressed: () { if (ws.isConnected.isFalse) ws.connect(); }, ), if (auth.isAuthorized.isTrue && connecting) IconButton( tooltip: [ if (ws.isConnecting.isTrue) 'Waiting Solar Network Connection...', ].join('\n'), icon: const Icon(Icons.sync) .animate(onPlay: (c) => c.repeat()) .rotate(duration: 1850.ms, begin: 1, end: 0), onPressed: () {}, ), ]); }); } }