Files
umbrix/lib/features/settings/geo_assets/geo_assets_page.dart
2023-11-17 23:44:32 +03:30

52 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:hiddify/core/core_providers.dart';
import 'package:hiddify/features/settings/geo_assets/geo_asset_tile.dart';
import 'package:hiddify/features/settings/geo_assets/geo_assets_notifier.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
class GeoAssetsPage extends HookConsumerWidget {
const GeoAssetsPage({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final t = ref.watch(translationsProvider);
final state = ref.watch(geoAssetsNotifierProvider);
return Scaffold(
body: CustomScrollView(
slivers: [
SliverAppBar(
title: Text(t.settings.geoAssets.pageTitle),
actions: [
PopupMenuButton(
itemBuilder: (context) {
return [
PopupMenuItem(
child: Text(t.settings.geoAssets.addRecommended),
onTap: () {
ref
.read(geoAssetsNotifierProvider.notifier)
.addRecommended();
},
),
];
},
),
],
),
switch (state) {
AsyncData(value: final geoAssets) => SliverList.builder(
itemBuilder: (context, index) {
final geoAsset = geoAssets[index];
return GeoAssetTile(geoAsset);
},
itemCount: geoAssets.length,
),
_ => const SliverToBoxAdapter(),
},
],
),
);
}
}