diff --git a/lib/features/common/adaptive_root_scaffold.dart b/lib/features/common/adaptive_root_scaffold.dart index e0a9786c..e6a8e349 100644 --- a/lib/features/common/adaptive_root_scaffold.dart +++ b/lib/features/common/adaptive_root_scaffold.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_adaptive_scaffold/flutter_adaptive_scaffold.dart'; import 'package:hiddify/core/core_providers.dart'; import 'package:hiddify/core/router/router.dart'; +import 'package:hiddify/features/common/side_bar_stats_overview.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; abstract interface class RootScaffold { @@ -55,6 +56,12 @@ class AdaptiveRootScaffold extends HookConsumerWidget { drawerDestinationRange: useMobileRouter ? (2, null) : (0, null), bottomDestinationRange: (0, 2), useBottomSheet: useMobileRouter, + sidebarTrailing: const Expanded( + child: Align( + alignment: Alignment.bottomCenter, + child: SideBarStatsOverview(), + ), + ), body: navigator, ); } @@ -68,6 +75,7 @@ class _CustomAdaptiveScaffold extends HookConsumerWidget { required this.drawerDestinationRange, required this.bottomDestinationRange, this.useBottomSheet = false, + this.sidebarTrailing, required this.body, }); @@ -77,6 +85,7 @@ class _CustomAdaptiveScaffold extends HookConsumerWidget { final (int, int?) drawerDestinationRange; final (int, int?) bottomDestinationRange; final bool useBottomSheet; + final Widget? sidebarTrailing; final Widget body; List destinationsSlice((int, int?) range) => @@ -134,6 +143,7 @@ class _CustomAdaptiveScaffold extends HookConsumerWidget { .map((_) => AdaptiveScaffold.toRailDestination(_)) .toList(), onDestinationSelected: onSelectedIndexChange, + trailing: sidebarTrailing, ), ), }, diff --git a/lib/features/common/stats/stats_overview.dart b/lib/features/common/side_bar_stats_overview.dart similarity index 92% rename from lib/features/common/stats/stats_overview.dart rename to lib/features/common/side_bar_stats_overview.dart index e54ae216..b3395cee 100644 --- a/lib/features/common/stats/stats_overview.dart +++ b/lib/features/common/side_bar_stats_overview.dart @@ -2,19 +2,18 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:hiddify/core/core_providers.dart'; import 'package:hiddify/domain/singbox/singbox.dart'; -import 'package:hiddify/features/common/stats/stats_notifier.dart'; +import 'package:hiddify/features/common/stats_provider.dart'; import 'package:hiddify/utils/utils.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -class StatsOverview extends HookConsumerWidget { - const StatsOverview({super.key}); +class SideBarStatsOverview extends HookConsumerWidget { + const SideBarStatsOverview({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final t = ref.watch(translationsProvider); - final stats = - ref.watch(statsNotifierProvider).asData?.value ?? CoreStatus.empty(); + final stats = ref.watch(statsProvider).asData?.value ?? CoreStatus.empty(); return Padding( padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 16), diff --git a/lib/features/common/stats/stats_notifier.dart b/lib/features/common/stats_provider.dart similarity index 88% rename from lib/features/common/stats/stats_notifier.dart rename to lib/features/common/stats_provider.dart index 5a1c0ecb..5ddbd43b 100644 --- a/lib/features/common/stats/stats_notifier.dart +++ b/lib/features/common/stats_provider.dart @@ -4,10 +4,10 @@ import 'package:hiddify/features/common/connectivity/connectivity_controller.dar import 'package:hiddify/utils/utils.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; -part 'stats_notifier.g.dart'; +part 'stats_provider.g.dart'; @riverpod -class StatsNotifier extends _$StatsNotifier with AppLogger { +class Stats extends _$Stats with AppLogger { @override Stream build() async* { final serviceRunning = await ref.watch(serviceRunningProvider.future);