Skip to content

Commit ef62dd8

Browse files
authored
Global empty states implementation (#12)
1 parent 4fb5bd9 commit ef62dd8

25 files changed

Lines changed: 445 additions & 184 deletions

assets/empty_review.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

assets/empty_state.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

assets/empty_state_wishlist.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

assets/translations/en.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,5 +178,16 @@
178178
"error_state_title": "Something went wrong",
179179
"error_state_subtitle": "We are working on fixing the problem.\nPlease, try again.",
180180
"error_state_retry": "Try again",
181-
"error_user_not_exist": "There is no user registered with provided name.\nPlease, check your username!"
181+
"error_user_not_exist": "There is no user registered with provided name.\nPlease, check your username!",
182+
"empty_state_title": "No items here \uD83D\uDE48",
183+
"empty_state_subtitle": "This list is currently empty",
184+
"featured_empty_title": "Nothing found \uD83D\uDE48",
185+
"featured_empty_subtitle": "Please try to change your filters or search keywords",
186+
"featured_empty_action": "Clear filters",
187+
"wish_list_empty_subtitle": "Start shopping and add items to your wish list",
188+
"orders_empty_title": "You haven't ordered any of our great products yet",
189+
"orders_empty_subtitle": "Maybe now it is great opportunity to make your first order",
190+
"orders_empty_action": "Order something",
191+
"product_review_empty_title": "No reviews yet",
192+
"product_review_empty_subtitle": "Be the first to leave a review about the product, your opinion is important to us"
182193
}

assets/translations/ru.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,5 +178,16 @@
178178
"error_state_title": "Что-то пошло не так",
179179
"error_state_subtitle": "Мы работаем над устранением ошибки.\nПожалуйста, попробуйте еще раз.",
180180
"error_state_retry": "Перезагрузить",
181-
"error_user_not_exist": "Пользователя с таким именем не существует.\nПожалуйста, проверьте имя пользователя!"
181+
"error_user_not_exist": "Пользователя с таким именем не существует.\nПожалуйста, проверьте имя пользователя!",
182+
"empty_state_title": "Здесь пусто \uD83D\uDE48",
183+
"empty_state_subtitle": "На данный момент тут ничего нет",
184+
"featured_empty_title": "Ничего не нашлось \uD83D\uDE48",
185+
"featured_empty_subtitle": "Попробуйте изменить фильтры или поисковую фразу",
186+
"featured_empty_action": "Сбросить фильтры",
187+
"wish_list_empty_subtitle": "Начните покупки и добавляйте товары в список желаний",
188+
"orders_empty_title": "У вас пока нет заказов",
189+
"orders_empty_subtitle": "Возможно именно сейчас подходящее время оформить свой первый заказ",
190+
"orders_empty_action": "Заказать",
191+
"product_review_empty_title": "Отзывов пока нет",
192+
"product_review_empty_subtitle": "Будьте первым, кто оставит отзыв о товаре, ваше мнение очень важно для нас"
182193
}

assets/translations/uk.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,5 +178,16 @@
178178
"error_state_title": "Щось пішло не так",
179179
"error_state_subtitle": "Ми працюємо над усуненням помилки.\nБудь-ласка, спробуйте ще раз.",
180180
"error_state_retry": "Перезавантажити",
181-
"error_user_not_exist": "Користувача з таким ім'ям не існує.\nБудь-ласка, перевірте ім'я користувача!"
181+
"error_user_not_exist": "Користувача з таким ім'ям не існує.\nБудь-ласка, перевірте ім'я користувача!",
182+
"empty_state_title": "Тут нічого немає \uD83D\uDE48",
183+
"empty_state_subtitle": "Наразі тут порожньо",
184+
"featured_empty_title": "Ми нічого не знайшли \uD83D\uDE48",
185+
"featured_empty_subtitle": "Спробуйте змінити фільтри чи пошукову фразу",
186+
"featured_empty_action": "Скинути фільтри",
187+
"wish_list_empty_subtitle": "Почніть покупки, та додавайте товари до списку бажань",
188+
"orders_empty_title": "Ви ще нічого не замовляли",
189+
"orders_empty_subtitle": "Можливо зараз саме час зробити своє перше замовдення",
190+
"orders_empty_action": "Замовити",
191+
"product_review_empty_title": "Відгуків поки що немає",
192+
"product_review_empty_subtitle": "Будьте першим, хто залишить відгук про товар, ваша думка важлива для нас"
182193
}

lib/datasource/wish_list_data_source.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class WishListDataSourceImpl extends WishListDataSource {
3838
.toList(),
3939
);
4040
var data =
41-
await _mapWishEntriesToProducts(entries, products);
41+
_mapWishEntriesToProducts(entries, products);
4242

4343
return data;
4444
});

lib/screens/cart/cart_view.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import 'package:wooapp/widget/shimmer.dart';
1616
import 'package:wooapp/widget/stateful_wrapper.dart';
1717
import 'package:wooapp/widget/widget_cart_empty.dart';
1818
import 'package:wooapp/widget/widget_cart_total.dart';
19-
import 'package:wooapp/widget/widget_retry.dart';
19+
import 'package:wooapp/widget/widget_error_state.dart';
2020

2121
class CartView extends StatelessWidget {
2222
final VoidCallback shoppingCallback;
@@ -272,7 +272,7 @@ class CartView extends StatelessWidget {
272272

273273
Widget _errorState(BuildContext context) => Scaffold(
274274
body: SafeArea(
275-
child: ErrorRetryWidget(
275+
child: WooErrorStateWidget(
276276
() => context.read<CartCubit>().getCart(),
277277
),
278278
),

lib/screens/catalog/catalog_screen.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import 'package:wooapp/locator.dart';
1111
import 'package:wooapp/model/category.dart';
1212
import 'package:wooapp/screens/featured/featured_sort.dart';
1313
import 'package:wooapp/widget/widget_catalog_item.dart';
14-
import 'package:wooapp/widget/widget_retry.dart';
14+
import 'package:wooapp/widget/widget_error_state.dart';
1515
import 'package:wooapp/widget/widget_sort.dart';
1616

1717
class CatalogScreen extends StatefulWidget {
@@ -61,7 +61,7 @@ class _CatalogScreenState extends State<CatalogScreen> {
6161
pagingController: _pagingController,
6262
builderDelegate: PagedChildBuilderDelegate<Category>(
6363
itemBuilder: (context, item, index) => CatalogItemWidget(item),
64-
firstPageErrorIndicatorBuilder: (_) => ErrorRetryWidget(() {
64+
firstPageErrorIndicatorBuilder: (_) => WooErrorStateWidget(() {
6565
_pagingController.refresh();
6666
}),
6767
),

lib/screens/category/category_screen.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ import 'package:wooapp/model/product.dart';
1010
import 'package:wooapp/screens/category/fliter/category_filter_screen.dart';
1111
import 'package:wooapp/screens/category/info/category_info_screen.dart';
1212
import 'package:wooapp/widget/shimmer.dart';
13+
import 'package:wooapp/widget/widget_empty_state.dart';
1314
import 'package:wooapp/widget/widget_product_grid.dart';
14-
import 'package:wooapp/widget/widget_retry.dart';
15+
import 'package:wooapp/widget/widget_error_state.dart';
1516

1617
class CategoryScreen extends StatefulWidget {
1718
final int categoryId;
@@ -114,9 +115,12 @@ class _CategoryScreenState extends State<CategoryScreen> {
114115
builderDelegate: PagedChildBuilderDelegate<CategoryProduct>(
115116
itemBuilder: (ctx, item, index) => CategoryProductGridItem(item),
116117
firstPageProgressIndicatorBuilder: (_) => FeaturedShimmer(true),
117-
firstPageErrorIndicatorBuilder: (_) => ErrorRetryWidget(() {
118+
firstPageErrorIndicatorBuilder: (_) => WooErrorStateWidget(() {
118119
_pagingController.refresh();
119120
}),
121+
noItemsFoundIndicatorBuilder: (_) => WooEmptyStateWidget(
122+
mainAxisAlignment: MainAxisAlignment.center,
123+
),
120124
newPageProgressIndicatorBuilder: (_) => FeaturedShimmer(false),
121125
newPageErrorIndicatorBuilder: (_) => CircularProgressIndicator(),
122126
),

0 commit comments

Comments
 (0)