Improved error messages

This commit is contained in:
Juan Gilsanz Polo
2024-02-24 01:57:39 +01:00
parent f11b112f97
commit ac340c108b
8 changed files with 69 additions and 36 deletions

View File

@@ -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/ui/bookmark_item.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';
@@ -65,17 +67,17 @@ class BookmarksScreen extends ConsumerWidget {
child: Center(child: CircularProgressIndicator()),
),
if (bookmarks.value != null && bookmarks.value!.successful == false)
const SliverFillRemaining(
child: Center(
child: Icon(Icons.error),
SliverFillRemaining(
child: ErrorScreen(
error: t.bookmarks.cannotLoadBookmarks,
),
),
if (bookmarks.value != null &&
bookmarks.value!.successful == true &&
bookmarks.value!.content!.results!.isEmpty)
const SliverFillRemaining(
child: Center(
child: Text("No bookmarks"),
SliverFillRemaining(
child: NoDataScreen(
message: t.bookmarks.noBookmarksAdded,
),
),
if (bookmarks.value != null &&

View File

@@ -1,11 +1,12 @@
import 'package:flutter/material.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/bookmarks/ui/bookmark_item.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';
class BookmarksSearchList extends ConsumerWidget {
@@ -26,17 +27,19 @@ class BookmarksSearchList extends ConsumerWidget {
return bookmarksSearch.when(
data: (data) {
if (data!.successful == false) {
return const SliverTabBody(
return SliverTabBody(
child: SliverFillRemaining(
child: Center(
child: Icon(Icons.error_rounded),
child: ErrorScreen(
error: t.search.cannotSearchError,
),
),
);
} else if (data.content!.results!.isEmpty) {
return const SliverTabBody(
return SliverTabBody(
child: SliverFillRemaining(
child: SearchNoData(),
child: NoDataScreen(
message: t.search.inputtedSearchTermNoResults,
),
),
);
} else {
@@ -51,10 +54,10 @@ class BookmarksSearchList extends ConsumerWidget {
);
}
},
error: (error, stackTrace) => const SliverTabBody(
error: (error, stackTrace) => SliverTabBody(
child: SliverFillRemaining(
child: Center(
child: ErrorSearchList(),
child: ErrorScreen(
error: t.search.cannotSearchError,
),
),
),

View File

@@ -1,33 +0,0 @@
import 'package:flutter/material.dart';
import 'package:linkdy/i18n/strings.g.dart';
class ErrorSearchList extends StatelessWidget {
const ErrorSearchList({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(16),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.error_rounded,
size: 50,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
const SizedBox(height: 30),
Text(
t.search.cannotSearchError,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 24,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
),
],
),
);
}
}

View File

@@ -1,33 +0,0 @@
import 'package:flutter/material.dart';
import 'package:linkdy/i18n/strings.g.dart';
class SearchNoData extends StatelessWidget {
const SearchNoData({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(16),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.clear_rounded,
size: 50,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
const SizedBox(height: 30),
Text(
t.search.inputtedSearchTermNoResults,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 24,
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
),
],
),
);
}
}

View File

@@ -2,9 +2,9 @@ import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.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/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/i18n/strings.g.dart';
@@ -28,17 +28,23 @@ class TagsSearchList extends ConsumerWidget {
return bookmarksSearch.when(
data: (data) {
if (data!.successful == false) {
return const SliverTabBody(
return SliverTabBody(
child: SliverFillRemaining(
child: Center(
child: Icon(Icons.error_rounded),
child: SliverTabBody(
child: SliverFillRemaining(
child: ErrorScreen(
error: t.search.cannotSearchError,
),
),
),
),
);
} else if (data.content!.results!.isEmpty) {
return const SliverTabBody(
return SliverTabBody(
child: SliverFillRemaining(
child: SearchNoData(),
child: NoDataScreen(
message: t.search.inputtedSearchTermNoResults,
),
),
);
} else {
@@ -65,10 +71,14 @@ class TagsSearchList extends ConsumerWidget {
);
}
},
error: (error, stackTrace) => const SliverTabBody(
error: (error, stackTrace) => SliverTabBody(
child: SliverFillRemaining(
child: Center(
child: ErrorSearchList(),
child: SliverTabBody(
child: SliverFillRemaining(
child: ErrorScreen(
error: t.search.cannotSearchError,
),
),
),
),
),