mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-07 05:15:50 -06:00
90 lines
3.2 KiB
Dart
90 lines
3.2 KiB
Dart
import 'package:flutter/widgets.dart';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:go_router/go_router.dart';
|
|
import 'package:paperless_api/paperless_api.dart';
|
|
import 'package:paperless_mobile/features/edit_label/view/impl/add_correspondent_page.dart';
|
|
import 'package:paperless_mobile/features/edit_label/view/impl/add_document_type_page.dart';
|
|
import 'package:paperless_mobile/features/edit_label/view/impl/add_storage_path_page.dart';
|
|
import 'package:paperless_mobile/features/edit_label/view/impl/add_tag_page.dart';
|
|
import 'package:paperless_mobile/features/edit_label/view/impl/edit_correspondent_page.dart';
|
|
import 'package:paperless_mobile/features/edit_label/view/impl/edit_document_type_page.dart';
|
|
import 'package:paperless_mobile/features/edit_label/view/impl/edit_storage_path_page.dart';
|
|
import 'package:paperless_mobile/features/edit_label/view/impl/edit_tag_page.dart';
|
|
import 'package:paperless_mobile/features/labels/view/pages/labels_page.dart';
|
|
import 'package:paperless_mobile/features/linked_documents/cubit/linked_documents_cubit.dart';
|
|
import 'package:paperless_mobile/features/linked_documents/view/linked_documents_page.dart';
|
|
import 'package:paperless_mobile/routing/navigation_keys.dart';
|
|
|
|
class LabelsBranch extends StatefulShellBranchData {
|
|
static final GlobalKey<NavigatorState> $navigatorKey = labelsNavigatorKey;
|
|
const LabelsBranch();
|
|
}
|
|
|
|
class LabelsRoute extends GoRouteData {
|
|
@override
|
|
Widget build(BuildContext context, GoRouterState state) {
|
|
return const LabelsPage();
|
|
}
|
|
}
|
|
|
|
class EditLabelRoute extends GoRouteData {
|
|
static final GlobalKey<NavigatorState> $parentNavigatorKey =
|
|
outerShellNavigatorKey;
|
|
|
|
final Label $extra;
|
|
|
|
const EditLabelRoute(this.$extra);
|
|
|
|
@override
|
|
Widget build(BuildContext context, GoRouterState state) {
|
|
return switch ($extra) {
|
|
Correspondent c => EditCorrespondentPage(correspondent: c),
|
|
DocumentType d => EditDocumentTypePage(documentType: d),
|
|
Tag t => EditTagPage(tag: t),
|
|
StoragePath s => EditStoragePathPage(storagePath: s),
|
|
};
|
|
}
|
|
}
|
|
|
|
class CreateLabelRoute extends GoRouteData {
|
|
static final GlobalKey<NavigatorState> $parentNavigatorKey =
|
|
outerShellNavigatorKey;
|
|
final LabelType $extra;
|
|
final String? name;
|
|
|
|
CreateLabelRoute(
|
|
this.$extra, {
|
|
this.name,
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context, GoRouterState state) {
|
|
return switch ($extra) {
|
|
LabelType.correspondent => AddCorrespondentPage(initialName: name),
|
|
LabelType.documentType => AddDocumentTypePage(initialName: name),
|
|
LabelType.tag => AddTagPage(initialName: name),
|
|
LabelType.storagePath => AddStoragePathPage(initialName: name),
|
|
};
|
|
}
|
|
}
|
|
|
|
class LinkedDocumentsRoute extends GoRouteData {
|
|
static final GlobalKey<NavigatorState> $parentNavigatorKey =
|
|
outerShellNavigatorKey;
|
|
final DocumentFilter $extra;
|
|
|
|
const LinkedDocumentsRoute(this.$extra);
|
|
@override
|
|
Widget build(BuildContext context, GoRouterState state) {
|
|
return BlocProvider(
|
|
create: (context) => LinkedDocumentsCubit(
|
|
$extra,
|
|
context.read(),
|
|
context.read(),
|
|
context.read(),
|
|
),
|
|
child: const LinkedDocumentsPage(),
|
|
);
|
|
}
|
|
}
|