Add recommended geo assets
This commit is contained in:
@@ -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 [
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user