Improved error messages
This commit is contained in:
@@ -4,9 +4,9 @@
|
|||||||
/// To regenerate, run: `dart run slang`
|
/// To regenerate, run: `dart run slang`
|
||||||
///
|
///
|
||||||
/// Locales: 2
|
/// Locales: 2
|
||||||
/// Strings: 208 (104 per locale)
|
/// Strings: 212 (106 per locale)
|
||||||
///
|
///
|
||||||
/// Built on 2024-02-24 at 00:45 UTC
|
/// Built on 2024-02-24 at 00:56 UTC
|
||||||
|
|
||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint
|
// ignore_for_file: type=lint
|
||||||
@@ -212,6 +212,8 @@ class _StringsBookmarksEn {
|
|||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
String get bookmarks => 'Bookmarks';
|
String get bookmarks => 'Bookmarks';
|
||||||
|
String get noBookmarksAdded => 'No bookmarks added';
|
||||||
|
String get cannotLoadBookmarks => 'Cannot load the bookmarks';
|
||||||
late final _StringsBookmarksDatesEn dates = _StringsBookmarksDatesEn._(_root);
|
late final _StringsBookmarksDatesEn dates = _StringsBookmarksDatesEn._(_root);
|
||||||
late final _StringsBookmarksAddBookmarkEn addBookmark = _StringsBookmarksAddBookmarkEn._(_root);
|
late final _StringsBookmarksAddBookmarkEn addBookmark = _StringsBookmarksAddBookmarkEn._(_root);
|
||||||
}
|
}
|
||||||
@@ -462,6 +464,8 @@ class _StringsBookmarksEs implements _StringsBookmarksEn {
|
|||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get bookmarks => 'Marcadores';
|
@override String get bookmarks => 'Marcadores';
|
||||||
|
@override String get noBookmarksAdded => 'No hay marcadores añadidos';
|
||||||
|
@override String get cannotLoadBookmarks => 'No se pueden cargar los marcadores';
|
||||||
@override late final _StringsBookmarksDatesEs dates = _StringsBookmarksDatesEs._(_root);
|
@override late final _StringsBookmarksDatesEs dates = _StringsBookmarksDatesEs._(_root);
|
||||||
@override late final _StringsBookmarksAddBookmarkEs addBookmark = _StringsBookmarksAddBookmarkEs._(_root);
|
@override late final _StringsBookmarksAddBookmarkEs addBookmark = _StringsBookmarksAddBookmarkEs._(_root);
|
||||||
}
|
}
|
||||||
@@ -660,6 +664,8 @@ extension on Translations {
|
|||||||
case 'onboarding.cannotConnectToServer': return 'Cannot connect to the server.';
|
case 'onboarding.cannotConnectToServer': return 'Cannot connect to the server.';
|
||||||
case 'onboarding.invalidToken': return 'Invalid token.';
|
case 'onboarding.invalidToken': return 'Invalid token.';
|
||||||
case 'bookmarks.bookmarks': return 'Bookmarks';
|
case 'bookmarks.bookmarks': return 'Bookmarks';
|
||||||
|
case 'bookmarks.noBookmarksAdded': return 'No bookmarks added';
|
||||||
|
case 'bookmarks.cannotLoadBookmarks': return 'Cannot load the bookmarks';
|
||||||
case 'bookmarks.dates.todayAt': return ({required Object time}) => 'Today, ${time}';
|
case 'bookmarks.dates.todayAt': return ({required Object time}) => 'Today, ${time}';
|
||||||
case 'bookmarks.dates.yesterdayAt': return ({required Object time}) => 'Yesterday, ${time}';
|
case 'bookmarks.dates.yesterdayAt': return ({required Object time}) => 'Yesterday, ${time}';
|
||||||
case 'bookmarks.addBookmark.addBookmark': return 'Add new bookmark';
|
case 'bookmarks.addBookmark.addBookmark': return 'Add new bookmark';
|
||||||
@@ -772,6 +778,8 @@ extension on _StringsEs {
|
|||||||
case 'onboarding.cannotConnectToServer': return 'No se puede conectar con el servidor.';
|
case 'onboarding.cannotConnectToServer': return 'No se puede conectar con el servidor.';
|
||||||
case 'onboarding.invalidToken': return 'Token no válido.';
|
case 'onboarding.invalidToken': return 'Token no válido.';
|
||||||
case 'bookmarks.bookmarks': return 'Marcadores';
|
case 'bookmarks.bookmarks': return 'Marcadores';
|
||||||
|
case 'bookmarks.noBookmarksAdded': return 'No hay marcadores añadidos';
|
||||||
|
case 'bookmarks.cannotLoadBookmarks': return 'No se pueden cargar los marcadores';
|
||||||
case 'bookmarks.dates.todayAt': return ({required Object time}) => 'Hoy, ${time}';
|
case 'bookmarks.dates.todayAt': return ({required Object time}) => 'Hoy, ${time}';
|
||||||
case 'bookmarks.dates.yesterdayAt': return ({required Object time}) => 'Ayer, ${time}';
|
case 'bookmarks.dates.yesterdayAt': return ({required Object time}) => 'Ayer, ${time}';
|
||||||
case 'bookmarks.addBookmark.addBookmark': return 'Añadir nuevo marcador';
|
case 'bookmarks.addBookmark.addBookmark': return 'Añadir nuevo marcador';
|
||||||
|
|||||||
@@ -34,6 +34,8 @@
|
|||||||
},
|
},
|
||||||
"bookmarks": {
|
"bookmarks": {
|
||||||
"bookmarks": "Bookmarks",
|
"bookmarks": "Bookmarks",
|
||||||
|
"noBookmarksAdded": "No bookmarks added",
|
||||||
|
"cannotLoadBookmarks": "Cannot load the bookmarks",
|
||||||
"dates": {
|
"dates": {
|
||||||
"todayAt": "Today, $time",
|
"todayAt": "Today, $time",
|
||||||
"yesterdayAt": "Yesterday, $time"
|
"yesterdayAt": "Yesterday, $time"
|
||||||
|
|||||||
@@ -34,6 +34,8 @@
|
|||||||
},
|
},
|
||||||
"bookmarks": {
|
"bookmarks": {
|
||||||
"bookmarks": "Marcadores",
|
"bookmarks": "Marcadores",
|
||||||
|
"noBookmarksAdded": "No hay marcadores añadidos",
|
||||||
|
"cannotLoadBookmarks": "No se pueden cargar los marcadores",
|
||||||
"dates": {
|
"dates": {
|
||||||
"todayAt": "Hoy, $time",
|
"todayAt": "Hoy, $time",
|
||||||
"yesterdayAt": "Ayer, $time"
|
"yesterdayAt": "Ayer, $time"
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|||||||
import 'package:linkdy/screens/bookmarks/provider/bookmarks.provider.dart';
|
import 'package:linkdy/screens/bookmarks/provider/bookmarks.provider.dart';
|
||||||
import 'package:linkdy/screens/bookmarks/ui/bookmark_item.dart';
|
import 'package:linkdy/screens/bookmarks/ui/bookmark_item.dart';
|
||||||
import 'package:linkdy/screens/bookmarks/ui/add_bookmark_modal.dart';
|
import 'package:linkdy/screens/bookmarks/ui/add_bookmark_modal.dart';
|
||||||
|
import 'package:linkdy/widgets/error_screen.dart';
|
||||||
|
import 'package:linkdy/widgets/no_data_screen.dart';
|
||||||
|
|
||||||
import 'package:linkdy/i18n/strings.g.dart';
|
import 'package:linkdy/i18n/strings.g.dart';
|
||||||
|
|
||||||
@@ -65,17 +67,17 @@ class BookmarksScreen extends ConsumerWidget {
|
|||||||
child: Center(child: CircularProgressIndicator()),
|
child: Center(child: CircularProgressIndicator()),
|
||||||
),
|
),
|
||||||
if (bookmarks.value != null && bookmarks.value!.successful == false)
|
if (bookmarks.value != null && bookmarks.value!.successful == false)
|
||||||
const SliverFillRemaining(
|
SliverFillRemaining(
|
||||||
child: Center(
|
child: ErrorScreen(
|
||||||
child: Icon(Icons.error),
|
error: t.bookmarks.cannotLoadBookmarks,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (bookmarks.value != null &&
|
if (bookmarks.value != null &&
|
||||||
bookmarks.value!.successful == true &&
|
bookmarks.value!.successful == true &&
|
||||||
bookmarks.value!.content!.results!.isEmpty)
|
bookmarks.value!.content!.results!.isEmpty)
|
||||||
const SliverFillRemaining(
|
SliverFillRemaining(
|
||||||
child: Center(
|
child: NoDataScreen(
|
||||||
child: Text("No bookmarks"),
|
message: t.bookmarks.noBookmarksAdded,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (bookmarks.value != null &&
|
if (bookmarks.value != null &&
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
import 'package:linkdy/i18n/strings.g.dart';
|
||||||
|
|
||||||
import 'package:linkdy/screens/search/ui/error_search_list.dart';
|
|
||||||
import 'package:linkdy/screens/search/ui/input_search_term.dart';
|
import 'package:linkdy/screens/search/ui/input_search_term.dart';
|
||||||
import 'package:linkdy/screens/bookmarks/ui/bookmark_item.dart';
|
import 'package:linkdy/screens/bookmarks/ui/bookmark_item.dart';
|
||||||
import 'package:linkdy/screens/search/provider/search.provider.dart';
|
import 'package:linkdy/screens/search/provider/search.provider.dart';
|
||||||
import 'package:linkdy/screens/search/ui/search_no_data.dart';
|
import 'package:linkdy/widgets/error_screen.dart';
|
||||||
|
import 'package:linkdy/widgets/no_data_screen.dart';
|
||||||
import 'package:linkdy/widgets/sliver_tab_body.dart';
|
import 'package:linkdy/widgets/sliver_tab_body.dart';
|
||||||
|
|
||||||
class BookmarksSearchList extends ConsumerWidget {
|
class BookmarksSearchList extends ConsumerWidget {
|
||||||
@@ -26,17 +27,19 @@ class BookmarksSearchList extends ConsumerWidget {
|
|||||||
return bookmarksSearch.when(
|
return bookmarksSearch.when(
|
||||||
data: (data) {
|
data: (data) {
|
||||||
if (data!.successful == false) {
|
if (data!.successful == false) {
|
||||||
return const SliverTabBody(
|
return SliverTabBody(
|
||||||
child: SliverFillRemaining(
|
child: SliverFillRemaining(
|
||||||
child: Center(
|
child: ErrorScreen(
|
||||||
child: Icon(Icons.error_rounded),
|
error: t.search.cannotSearchError,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else if (data.content!.results!.isEmpty) {
|
} else if (data.content!.results!.isEmpty) {
|
||||||
return const SliverTabBody(
|
return SliverTabBody(
|
||||||
child: SliverFillRemaining(
|
child: SliverFillRemaining(
|
||||||
child: SearchNoData(),
|
child: NoDataScreen(
|
||||||
|
message: t.search.inputtedSearchTermNoResults,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -51,10 +54,10 @@ class BookmarksSearchList extends ConsumerWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: (error, stackTrace) => const SliverTabBody(
|
error: (error, stackTrace) => SliverTabBody(
|
||||||
child: SliverFillRemaining(
|
child: SliverFillRemaining(
|
||||||
child: Center(
|
child: ErrorScreen(
|
||||||
child: ErrorSearchList(),
|
error: t.search.cannotSearchError,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
|
||||||
import 'package:linkdy/screens/search/provider/search.provider.dart';
|
import 'package:linkdy/screens/search/provider/search.provider.dart';
|
||||||
import 'package:linkdy/screens/search/ui/error_search_list.dart';
|
|
||||||
import 'package:linkdy/screens/search/ui/input_search_term.dart';
|
import 'package:linkdy/screens/search/ui/input_search_term.dart';
|
||||||
import 'package:linkdy/screens/search/ui/search_no_data.dart';
|
import 'package:linkdy/widgets/error_screen.dart';
|
||||||
|
import 'package:linkdy/widgets/no_data_screen.dart';
|
||||||
import 'package:linkdy/widgets/sliver_tab_body.dart';
|
import 'package:linkdy/widgets/sliver_tab_body.dart';
|
||||||
|
|
||||||
import 'package:linkdy/i18n/strings.g.dart';
|
import 'package:linkdy/i18n/strings.g.dart';
|
||||||
@@ -28,17 +28,23 @@ class TagsSearchList extends ConsumerWidget {
|
|||||||
return bookmarksSearch.when(
|
return bookmarksSearch.when(
|
||||||
data: (data) {
|
data: (data) {
|
||||||
if (data!.successful == false) {
|
if (data!.successful == false) {
|
||||||
return const SliverTabBody(
|
return SliverTabBody(
|
||||||
child: SliverFillRemaining(
|
child: SliverFillRemaining(
|
||||||
child: Center(
|
child: SliverTabBody(
|
||||||
child: Icon(Icons.error_rounded),
|
child: SliverFillRemaining(
|
||||||
|
child: ErrorScreen(
|
||||||
|
error: t.search.cannotSearchError,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else if (data.content!.results!.isEmpty) {
|
} else if (data.content!.results!.isEmpty) {
|
||||||
return const SliverTabBody(
|
return SliverTabBody(
|
||||||
child: SliverFillRemaining(
|
child: SliverFillRemaining(
|
||||||
child: SearchNoData(),
|
child: NoDataScreen(
|
||||||
|
message: t.search.inputtedSearchTermNoResults,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -65,10 +71,14 @@ class TagsSearchList extends ConsumerWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: (error, stackTrace) => const SliverTabBody(
|
error: (error, stackTrace) => SliverTabBody(
|
||||||
child: SliverFillRemaining(
|
child: SliverFillRemaining(
|
||||||
child: Center(
|
child: SliverTabBody(
|
||||||
child: ErrorSearchList(),
|
child: SliverFillRemaining(
|
||||||
|
child: ErrorScreen(
|
||||||
|
error: t.search.cannotSearchError,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import 'package:linkdy/i18n/strings.g.dart';
|
class ErrorScreen extends StatelessWidget {
|
||||||
|
final String error;
|
||||||
|
|
||||||
class ErrorSearchList extends StatelessWidget {
|
const ErrorScreen({
|
||||||
const ErrorSearchList({Key? key}) : super(key: key);
|
Key? key,
|
||||||
|
required this.error,
|
||||||
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@@ -19,7 +22,7 @@ class ErrorSearchList extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(height: 30),
|
const SizedBox(height: 30),
|
||||||
Text(
|
Text(
|
||||||
t.search.cannotSearchError,
|
error,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import 'package:linkdy/i18n/strings.g.dart';
|
class NoDataScreen extends StatelessWidget {
|
||||||
|
final String message;
|
||||||
|
|
||||||
class SearchNoData extends StatelessWidget {
|
const NoDataScreen({
|
||||||
const SearchNoData({Key? key}) : super(key: key);
|
Key? key,
|
||||||
|
required this.message,
|
||||||
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@@ -19,7 +22,7 @@ class SearchNoData extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(height: 30),
|
const SizedBox(height: 30),
|
||||||
Text(
|
Text(
|
||||||
t.search.inputtedSearchTermNoResults,
|
message,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
Reference in New Issue
Block a user