Add recommended geo assets

This commit is contained in:
problematicconsumer
2023-11-17 23:44:32 +03:30
parent 436fc8133c
commit a728280249
12 changed files with 96 additions and 6 deletions

View File

@@ -89,6 +89,11 @@ class GeoAssetTile extends HookConsumerWidget {
],
),
selected: geoAsset.active,
onTap: () async {
await ref
.read(geoAssetsNotifierProvider.notifier)
.markAsActive(geoAsset);
},
trailing: PopupMenuButton(
itemBuilder: (context) {
return [

View File

@@ -20,7 +20,28 @@ class GeoAssetsNotifier extends _$GeoAssetsNotifier with AppLogger {
Future<void> updateGeoAsset(GeoAsset geoAsset) async {
await ref.read(geoAssetsRepositoryProvider).update(geoAsset).getOrElse(
(f) {
loggy.warning("error updating profile", f);
loggy.warning("error updating geo asset", f);
throw f;
},
).run();
}
Future<void> markAsActive(GeoAsset geoAsset) async {
await ref
.read(geoAssetsRepositoryProvider)
.markAsActive(geoAsset)
.getOrElse(
(f) {
loggy.warning("error marking geo asset as active", f);
throw f;
},
).run();
}
Future<void> addRecommended() async {
await ref.read(geoAssetsRepositoryProvider).addRecommended().getOrElse(
(f) {
loggy.warning("error adding recommended geo assets", f);
throw f;
},
).run();

View File

@@ -17,6 +17,22 @@ class GeoAssetsPage extends HookConsumerWidget {
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(