device_status.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import 'package:flutter/material.dart';
  2. import 'package:vitalapp/pages/check/widgets/exam_device_connect_status/connect.dart';
  3. import 'package:vitalapp/pages/check/widgets/exam_device_connect_status/connect_disconnected.dart';
  4. import 'package:vitalapp/pages/check/widgets/exam_device_connect_status/connect_fail.dart';
  5. import 'package:vitalapp/pages/check/widgets/exam_device_connect_status/connect_success.dart';
  6. import 'package:vitalapp/pages/check/widgets/exam_device_connect_status/connect_unbound_device.dart';
  7. import 'package:vitalapp/pages/medical/models/worker.dart';
  8. class DeviceStatus extends StatefulWidget {
  9. const DeviceStatus({
  10. super.key,
  11. this.connectStatus,
  12. });
  13. final WorkerStatus? connectStatus;
  14. @override
  15. State<StatefulWidget> createState() {
  16. return _DeviceStatusState();
  17. }
  18. }
  19. class _DeviceStatusState extends State<DeviceStatus> {
  20. WorkerStatus? _connectStatus;
  21. @override
  22. Widget build(BuildContext context) {
  23. return _buildContent();
  24. }
  25. @override
  26. void initState() {
  27. _connectStatus = widget.connectStatus;
  28. super.initState();
  29. }
  30. @override
  31. void didUpdateWidget(covariant DeviceStatus oldWidget) {
  32. if (_connectStatus != widget.connectStatus) {
  33. setState(() {
  34. _connectStatus = widget.connectStatus;
  35. });
  36. }
  37. super.didUpdateWidget(oldWidget);
  38. }
  39. Widget _buildContent() {
  40. switch (_connectStatus) {
  41. case WorkerStatus.connectionFailed:
  42. return const DeviceConnectFail();
  43. case WorkerStatus.connected:
  44. return const DeviceConnectSuccess();
  45. case WorkerStatus.connecting:
  46. return const DeviceConnecting();
  47. case WorkerStatus.disconnected:
  48. return const DeviceConnectDisconnected();
  49. case WorkerStatus.unboundDevice:
  50. return const UnboundDevice();
  51. default:
  52. return const SizedBox();
  53. }
  54. }
  55. }