feat: Improve inbox loading animation, fix refresh indicator positions

This commit is contained in:
Anton Stubenbord
2023-02-24 13:42:58 +01:00
parent 7464266ac5
commit 38aee2b052
9 changed files with 211 additions and 70 deletions

View File

@@ -3,20 +3,18 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:intl/intl.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/features/app_drawer/view/app_drawer.dart';
import 'package:paperless_mobile/features/document_search/view/document_search_page.dart';
import 'package:paperless_mobile/core/widgets/hint_card.dart';
import 'package:paperless_mobile/extensions/dart_extensions.dart';
import 'package:paperless_mobile/extensions/flutter_extensions.dart';
import 'package:paperless_mobile/features/app_drawer/view/app_drawer.dart';
import 'package:paperless_mobile/features/document_search/view/sliver_search_bar.dart';
import 'package:paperless_mobile/features/documents/view/widgets/placeholder/documents_list_loading_widget.dart';
import 'package:paperless_mobile/features/inbox/cubit/inbox_cubit.dart';
import 'package:paperless_mobile/features/inbox/view/widgets/inbox_empty_widget.dart';
import 'package:paperless_mobile/features/inbox/view/widgets/inbox_item.dart';
import 'package:paperless_mobile/features/inbox/view/widgets/inbox_list_loading_widget.dart';
import 'package:paperless_mobile/features/paged_document_view/view/document_paging_view_mixin.dart';
import 'package:paperless_mobile/features/search_app_bar/view/search_app_bar.dart';
import 'package:paperless_mobile/generated/l10n/app_localizations.dart';
import 'package:paperless_mobile/helpers/message_helpers.dart';
class InboxPage extends StatefulWidget {
@@ -38,7 +36,7 @@ class _InboxPageState extends State<InboxPage>
@override
void initState() {
super.initState();
context.read<InboxCubit>().loadInbox();
context.read<InboxCubit>().reloadInbox();
}
@override
@@ -76,7 +74,7 @@ class _InboxPageState extends State<InboxPage>
body: Builder(
builder: (context) {
if (!state.hasLoaded) {
return const DocumentsListLoadingWidget(); //TODO: Implement InboxLoadingWidget...
return const InboxListLoadingWidget();
} else if (state.documents.isEmpty) {
return Center(
child: InboxEmptyWidget(
@@ -86,7 +84,6 @@ class _InboxPageState extends State<InboxPage>
);
} else {
return RefreshIndicator(
edgeOffset: kToolbarHeight,
onRefresh: context.read<InboxCubit>().reload,
child: CustomScrollView(
slivers: [