feat: Implemented new view type, fix connectivity issues, fix offline issues, fix loading animations, fix documents page paging

This commit is contained in:
Anton Stubenbord
2023-02-14 00:24:14 +01:00
parent c5033792aa
commit 6f66bf27fd
29 changed files with 806 additions and 606 deletions

View File

@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:paperless_mobile/core/bloc/connectivity_cubit.dart';
import 'package:paperless_mobile/core/widgets/hint_card.dart';
import 'package:paperless_mobile/features/saved_view/cubit/saved_view_cubit.dart';
import 'package:paperless_mobile/features/saved_view_details/cubit/saved_view_details_cubit.dart';
@@ -12,50 +13,55 @@ class SavedViewList extends StatelessWidget {
@override
Widget build(BuildContext context) {
final savedViewCubit = context.read<SavedViewCubit>();
return BlocBuilder<SavedViewCubit, SavedViewState>(
builder: (context, state) {
if (state.value.isEmpty) {
return SliverToBoxAdapter(
child: HintCard(
hintText: S.of(context).savedViewsEmptyStateText,
),
);
}
return SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) {
final view = state.value.values.elementAt(index);
return ListTile(
title: Text(view.name),
subtitle: Text(
S
.of(context)
.savedViewsFiltersSetCount(view.filterRules.length),
return BlocBuilder<ConnectivityCubit, ConnectivityState>(
builder: (context, connectivity) {
return BlocBuilder<SavedViewCubit, SavedViewState>(
builder: (context, state) {
if (state.value.isEmpty) {
return SliverToBoxAdapter(
child: HintCard(
hintText: S.of(context).savedViewsEmptyStateText,
),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => MultiBlocProvider(
providers: [
BlocProvider(
create: (context) => SavedViewDetailsCubit(
context.read(),
context.read(),
savedView: view,
);
}
return SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) {
final view = state.value.values.elementAt(index);
return ListTile(
enabled: connectivity.isConnected,
title: Text(view.name),
subtitle: Text(
S
.of(context)
.savedViewsFiltersSetCount(view.filterRules.length),
),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => MultiBlocProvider(
providers: [
BlocProvider(
create: (context) => SavedViewDetailsCubit(
context.read(),
context.read(),
savedView: view,
),
),
],
child: SavedViewDetailsPage(
onDelete: savedViewCubit.remove,
),
),
],
child: SavedViewDetailsPage(
onDelete: savedViewCubit.remove,
),
),
),
);
},
);
},
);
},
childCount: state.value.length,
),
childCount: state.value.length,
),
);
},
);
},
);