content: import 'package:fl_clash/common/proxy.dart';
  import 'package:fl_clash/models/models.dart';
  import 'package:fl_clash/providers/state.dart';
  import 'package:flutter/material.dart';
  import 'package:flutter_riverpod/flutter_riverpod.dart';
  
  class ProxyManager extends ConsumerStatefulWidget {
    final Widget child;
  
    const ProxyManager({super.key, required this.child});
  
    @override
    ConsumerState createState() => _ProxyManagerState();
  }
  
  class _ProxyManagerState extends ConsumerState<ProxyManager> {
    _updateProxy(ProxyState proxyState) async {
      final isStart = proxyState.isStart;
      final systemProxy = proxyState.systemProxy;
      final port = proxyState.port;
      if (isStart && systemProxy) {
        proxy?.startProxy(port, proxyState.bassDomain);
      } else {
        proxy?.stopProxy();
      }
    }
  
    @override
    void initState() {
      super.initState();
      ref.listenManual(
        proxyStateProvider,
        (prev, next) {
          if (prev != next) {
            _updateProxy(next);
          }
        },
        fireImmediately: true,
      );
    }
  
    @override
    Widget build(BuildContext context) {
      return widget.child;
    }
  }
  