Files
MWClash/lib/widgets/app_state_container.dart
chen08209 53af86238e Fix url validate issues 2
Add android hidden from the recent task

Add geoip file

Support modify geoData URL
2024-07-13 20:43:18 +08:00

48 lines
1.3 KiB
Dart

import 'package:fl_clash/common/common.dart';
import 'package:fl_clash/models/models.dart';
import 'package:fl_clash/state.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class AppStateContainer extends StatelessWidget {
final Widget child;
const AppStateContainer({
super.key,
required this.child,
});
_updateNavigationsContainer(Widget child) {
return Selector2<AppState, Config, UpdateNavigationsSelector>(
selector: (_, appState, config) {
final group = appState.currentGroups;
final hasProfile = config.profiles.isNotEmpty;
return UpdateNavigationsSelector(
openLogs: config.openLogs,
hasProxies: group.isNotEmpty && hasProfile,
);
},
builder: (context, state, child) {
WidgetsBinding.instance.addPostFrameCallback(
(_) {
globalState.appController.appState.navigationItems =
navigation.getItems(
openLogs: state.openLogs,
hasProxies: state.hasProxies,
);
},
);
return child!;
},
child: child,
);
}
@override
Widget build(BuildContext context) {
return _updateNavigationsContainer(
child,
);
}
}