feat: Further migrations to go_router, add onclick to document previews

This commit is contained in:
Anton Stubenbord
2023-07-31 02:51:00 +02:00
parent f1398e6d4c
commit f3e660e91d
33 changed files with 868 additions and 845 deletions

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:hive_flutter/adapters.dart';
import 'package:paperless_api/paperless_api.dart';
@@ -16,9 +17,14 @@ import 'package:paperless_mobile/features/documents/cubit/documents_cubit.dart';
import 'package:paperless_mobile/features/home/view/model/api_version.dart';
import 'package:paperless_mobile/features/inbox/cubit/inbox_cubit.dart';
import 'package:paperless_mobile/features/labels/cubit/label_cubit.dart';
import 'package:paperless_mobile/features/login/cubit/authentication_cubit.dart';
import 'package:paperless_mobile/features/saved_view/cubit/saved_view_cubit.dart';
import 'package:paperless_mobile/features/settings/view/widgets/global_settings_builder.dart';
import 'package:paperless_mobile/features/tasks/cubit/task_status_cubit.dart';
import 'package:paperless_mobile/routes/typed/branches/landing_route.dart';
import 'package:paperless_mobile/routes/typed/top_level/login_route.dart';
import 'package:paperless_mobile/routes/typed/top_level/switching_accounts_route.dart';
import 'package:paperless_mobile/routes/typed/top_level/verify_identity_route.dart';
import 'package:provider/provider.dart';
class HomeShellWidget extends StatelessWidget {
@@ -57,7 +63,10 @@ class HomeShellWidget extends StatelessWidget {
.listenable(keys: [currentUserId]),
builder: (context, box, _) {
final currentLocalUser = box.get(currentUserId)!;
print(currentLocalUser.paperlessUser.canViewDocuments);
print(currentLocalUser.paperlessUser.canViewTags);
return MultiProvider(
key: ValueKey(currentUserId),
providers: [
Provider.value(value: currentLocalUser),
Provider.value(value: apiVersion),
@@ -162,16 +171,22 @@ class HomeShellWidget extends StatelessWidget {
create: (context) =>
DocumentScannerCubit(context.read()),
),
if (currentLocalUser.paperlessUser.canViewDocuments &&
currentLocalUser.paperlessUser.canViewTags)
Provider(
create: (context) => InboxCubit(
Provider(
create: (context) {
final inboxCubit = InboxCubit(
context.read(),
context.read(),
context.read(),
context.read(),
).initialize(),
),
);
if (currentLocalUser
.paperlessUser.canViewDocuments &&
currentLocalUser.paperlessUser.canViewTags) {
inboxCubit.initialize();
}
return inboxCubit;
},
),
Provider(
create: (context) => SavedViewCubit(
context.read(),

View File

@@ -46,24 +46,24 @@ class ScaffoldWithNavigationBarState extends State<ScaffoldWithNavigationBar> {
if (widget.authenticatedUser.canViewDocuments) {
widget.navigationShell.goBranch(index);
} else {
showSnackBar(
context, "You do not have permission to access this page.");
showSnackBar(context,
"You do not have the required permissions to access this page.");
}
break;
case _scannerIndex:
if (widget.authenticatedUser.canCreateDocuments) {
widget.navigationShell.goBranch(index);
} else {
showSnackBar(
context, "You do not have permission to access this page.");
showSnackBar(context,
"You do not have the required permissions to access this page.");
}
break;
case _labelsIndex:
if (widget.authenticatedUser.canViewAnyLabel) {
widget.navigationShell.goBranch(index);
} else {
showSnackBar(
context, "You do not have permission to access this page.");
showSnackBar(context,
"You do not have the required permissions to access this page.");
}
break;
case _inboxIndex:
@@ -71,8 +71,8 @@ class ScaffoldWithNavigationBarState extends State<ScaffoldWithNavigationBar> {
widget.authenticatedUser.canViewTags) {
widget.navigationShell.goBranch(index);
} else {
showSnackBar(
context, "You do not have permission to access this page.");
showSnackBar(context,
"You do not have the required permissions to access this page.");
}
break;
default:
@@ -132,7 +132,7 @@ class ScaffoldWithNavigationBarState extends State<ScaffoldWithNavigationBar> {
if (!(widget.authenticatedUser.canViewDocuments &&
widget.authenticatedUser.canViewTags)) {
return Icon(
Icons.close,
Icons.inbox_outlined,
color: disabledColor,
);
}