Add missing routing asset warning
This commit is contained in:
@@ -233,7 +233,8 @@
|
||||
"download": "Download",
|
||||
"failureMsg": "Failed to update asset",
|
||||
"successMsg": "Successfully updated asset",
|
||||
"addRecommended": "Add Recommended Assets"
|
||||
"addRecommended": "Add Recommended Assets",
|
||||
"missingGeoAssetsMsg": "Selected routing assets' files are missing. Either download them or choose existing ones."
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
|
||||
@@ -233,7 +233,8 @@
|
||||
"download": "دانلود",
|
||||
"failureMsg": "دارایی به روز نشد",
|
||||
"successMsg": "دارایی با موفقیت به روز شد",
|
||||
"addRecommended": "اضافه کردن دارایی های توصیه شده"
|
||||
"addRecommended": "اضافه کردن دارایی های توصیه شده",
|
||||
"missingGeoAssetsMsg": "فایلهای داراییهای مسیریابی انتخابی وجود ندارد. یا آنها را دانلود کنید یا موارد موجود را انتخاب کنید."
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
|
||||
@@ -233,7 +233,8 @@
|
||||
"download": "Скачать",
|
||||
"failureMsg": "Не удалось обновить объект",
|
||||
"successMsg": "Объект успешно обновлен",
|
||||
"addRecommended": "Добавить рекомендуемые активы"
|
||||
"addRecommended": "Добавить рекомендуемые активы",
|
||||
"missingGeoAssetsMsg": "Файлы выбранных ресурсов маршрутизации отсутствуют. Либо скачайте их, либо выберите существующие."
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
|
||||
@@ -233,7 +233,8 @@
|
||||
"download": "İndirmek",
|
||||
"failureMsg": "Öğe güncellenemedi",
|
||||
"successMsg": "Öğe başarıyla güncellendi",
|
||||
"addRecommended": "Önerilen Varlıkları Ekle"
|
||||
"addRecommended": "Önerilen Varlıkları Ekle",
|
||||
"missingGeoAssetsMsg": "Seçilen yönlendirme varlıklarının dosyaları eksik. Bunları indirin veya mevcut olanları seçin."
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
|
||||
@@ -233,7 +233,8 @@
|
||||
"download": "下载",
|
||||
"failureMsg": "更新资源文件失败",
|
||||
"successMsg": "已成功更新资源文件",
|
||||
"addRecommended": "添加建议的资源文件"
|
||||
"addRecommended": "添加建议的资源文件",
|
||||
"missingGeoAssetsMsg": "所选路由资源的文件丢失。下载它们或选择现有的。"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:hiddify/core/localization/translations.dart';
|
||||
import 'package:hiddify/features/geo_asset/overview/geo_assets_overview_notifier.dart';
|
||||
import 'package:hiddify/features/geo_asset/widget/geo_asset_tile.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:sliver_tools/sliver_tools.dart';
|
||||
|
||||
class GeoAssetsOverviewPage extends HookConsumerWidget {
|
||||
const GeoAssetsOverviewPage({super.key});
|
||||
@@ -17,6 +18,7 @@ class GeoAssetsOverviewPage extends HookConsumerWidget {
|
||||
slivers: [
|
||||
SliverAppBar(
|
||||
title: Text(t.settings.geoAssets.pageTitle),
|
||||
pinned: true,
|
||||
actions: [
|
||||
PopupMenuButton(
|
||||
itemBuilder: (context) {
|
||||
@@ -34,6 +36,17 @@ class GeoAssetsOverviewPage extends HookConsumerWidget {
|
||||
),
|
||||
],
|
||||
),
|
||||
if (state case AsyncData(value: final geoAssets))
|
||||
SliverPinnedHeader(
|
||||
child: AnimatedSwitcher(
|
||||
duration: const Duration(milliseconds: 200),
|
||||
child: geoAssets
|
||||
.where((e) => e.$1.active && e.$2 == null)
|
||||
.isNotEmpty
|
||||
? const MissingRoutingAssetsCard()
|
||||
: const SizedBox(),
|
||||
),
|
||||
),
|
||||
switch (state) {
|
||||
AsyncData(value: final geoAssets) => SliverList.builder(
|
||||
itemBuilder: (context, index) {
|
||||
@@ -54,3 +67,39 @@ class GeoAssetsOverviewPage extends HookConsumerWidget {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class MissingRoutingAssetsCard extends HookConsumerWidget {
|
||||
const MissingRoutingAssetsCard({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final t = ref.watch(translationsProvider);
|
||||
|
||||
return Card(
|
||||
margin: const EdgeInsets.symmetric(
|
||||
horizontal: 12,
|
||||
vertical: 4,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
const Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: Icon(Icons.lightbulb),
|
||||
),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 8, vertical: 8),
|
||||
child: Text(t.settings.geoAssets.missingGeoAssetsMsg),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user