diff --git a/lib/ui/app/document_grid.dart b/lib/ui/app/document_grid.dart index 67d056740..be530b447 100644 --- a/lib/ui/app/document_grid.dart +++ b/lib/ui/app/document_grid.dart @@ -12,7 +12,6 @@ import 'package:http/http.dart' as http; import 'package:http/http.dart'; import 'package:image_cropper/image_cropper.dart'; import 'package:image_picker/image_picker.dart'; -import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/document/document_actions.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; diff --git a/lib/ui/expense/view/expense_view_documents.dart b/lib/ui/expense/view/expense_view_documents.dart index 62f2f0b43..237ac8abb 100644 --- a/lib/ui/expense/view/expense_view_documents.dart +++ b/lib/ui/expense/view/expense_view_documents.dart @@ -1,8 +1,11 @@ // Flutter imports: import 'package:flutter/material.dart'; +import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; // Project imports: import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/expense/expense_actions.dart'; import 'package:invoiceninja_flutter/ui/app/document_grid.dart'; import 'package:invoiceninja_flutter/ui/expense/view/expense_view_vm.dart'; @@ -15,11 +18,15 @@ class ExpenseViewDocuments extends StatelessWidget { @override Widget build(BuildContext context) { + final store = StoreProvider.of(context); + return DocumentGrid( documents: expense.documents.toList(), onUploadDocument: (path) => viewModel.onUploadDocument(context, path), onDeleteDocument: (document, password, idToken) => viewModel.onDeleteDocument(context, document, password, idToken), + onRenamedDocument: () => + store.dispatch(LoadExpense(expenseId: expense.id)), onViewExpense: null, ); } diff --git a/lib/ui/group/view/group_view.dart b/lib/ui/group/view/group_view.dart index e194f08f4..d4046348d 100644 --- a/lib/ui/group/view/group_view.dart +++ b/lib/ui/group/view/group_view.dart @@ -1,9 +1,10 @@ // Flutter imports: import 'package:flutter/material.dart'; +import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; // Project imports: import 'package:invoiceninja_flutter/data/models/models.dart'; -import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/group/group_actions.dart'; import 'package:invoiceninja_flutter/redux/group/group_selectors.dart'; import 'package:invoiceninja_flutter/ui/app/FieldGrid.dart'; @@ -49,6 +50,7 @@ class _GroupViewState extends State @override Widget build(BuildContext context) { + final store = StoreProvider.of(context); final localization = AppLocalization.of(context); final viewModel = widget.viewModel; final state = viewModel.state; @@ -110,6 +112,8 @@ class _GroupViewState extends State viewModel.onUploadDocument(context, path), onDeleteDocument: (document, password, idToken) => viewModel .onDeleteDocument(context, document, password, idToken), + onRenamedDocument: () => + store.dispatch(LoadGroup(groupId: group.id)), ), ], ), diff --git a/lib/ui/invoice/edit/invoice_edit_desktop.dart b/lib/ui/invoice/edit/invoice_edit_desktop.dart index bb9f22bec..833a10cff 100644 --- a/lib/ui/invoice/edit/invoice_edit_desktop.dart +++ b/lib/ui/invoice/edit/invoice_edit_desktop.dart @@ -9,6 +9,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/data/models/vendor_model.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; +import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart'; import 'package:invoiceninja_flutter/redux/vendor/vendor_actions.dart'; import 'package:invoiceninja_flutter/redux/vendor/vendor_selectors.dart'; import 'package:invoiceninja_flutter/ui/app/autobill_dropdown_menu_item.dart'; @@ -939,18 +940,21 @@ class InvoiceEditDesktopState extends State HelpText(localization.saveToUploadDocuments) else DocumentGrid( - documents: invoice.documents.toList(), - onUploadDocument: (path) => widget - .entityViewModel - .onUploadDocument(context, path), - onDeleteDocument: - (document, password, idToken) => - widget.entityViewModel - .onDeleteDocument( - context, - document, - password, - idToken)) + documents: + originalInvoice.documents.toList(), + onUploadDocument: (path) => widget + .entityViewModel + .onUploadDocument(context, path), + onDeleteDocument: (document, password, + idToken) => + widget.entityViewModel.onDeleteDocument( + context, + document, + password, + idToken), + onRenamedDocument: () => store.dispatch( + LoadInvoice(invoiceId: invoice.id)), + ) ], ), ), diff --git a/lib/ui/invoice/view/invoice_view_documents.dart b/lib/ui/invoice/view/invoice_view_documents.dart index 4da7e0940..3dd7bc7cc 100644 --- a/lib/ui/invoice/view/invoice_view_documents.dart +++ b/lib/ui/invoice/view/invoice_view_documents.dart @@ -1,8 +1,11 @@ // Flutter imports: import 'package:flutter/material.dart'; +import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; // Project imports: import 'package:invoiceninja_flutter/data/models/models.dart'; +import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart'; import 'package:invoiceninja_flutter/ui/app/document_grid.dart'; import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_vm.dart'; @@ -16,12 +19,16 @@ class InvoiceViewDocuments extends StatelessWidget { @override Widget build(BuildContext context) { + final store = StoreProvider.of(context); + return DocumentGrid( documents: invoice.documents.toList(), onUploadDocument: (path) => viewModel.onUploadDocument(context, path), onDeleteDocument: (document, password, idToken) => viewModel.onDeleteDocument(context, document, password, idToken), onViewExpense: (document) => viewModel.onViewExpense(context, document), + onRenamedDocument: () => + store.dispatch(LoadInvoice(invoiceId: invoice.id)), ); } } diff --git a/lib/ui/product/view/product_view_documents.dart b/lib/ui/product/view/product_view_documents.dart index f4c5d9513..6b9b5558c 100644 --- a/lib/ui/product/view/product_view_documents.dart +++ b/lib/ui/product/view/product_view_documents.dart @@ -1,5 +1,8 @@ // Flutter imports: import 'package:flutter/material.dart'; +import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; +import 'package:invoiceninja_flutter/redux/product/product_actions.dart'; // Project imports: import 'package:invoiceninja_flutter/ui/app/document_grid.dart'; @@ -13,6 +16,7 @@ class ProductViewDocuments extends StatelessWidget { @override Widget build(BuildContext context) { + final store = StoreProvider.of(context); final product = viewModel.product; return DocumentGrid( @@ -20,6 +24,8 @@ class ProductViewDocuments extends StatelessWidget { onUploadDocument: (path) => viewModel.onUploadDocument(context, path), onDeleteDocument: (document, password, idToken) => viewModel.onDeleteDocument(context, document, password, idToken), + onRenamedDocument: () => + store.dispatch(LoadProduct(productId: product.id)), ); } } diff --git a/lib/ui/project/view/project_view_documents.dart b/lib/ui/project/view/project_view_documents.dart index 1295a17e3..a85d70ef1 100644 --- a/lib/ui/project/view/project_view_documents.dart +++ b/lib/ui/project/view/project_view_documents.dart @@ -1,5 +1,8 @@ // Flutter imports: import 'package:flutter/material.dart'; +import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; +import 'package:invoiceninja_flutter/redux/project/project_actions.dart'; // Project imports: import 'package:invoiceninja_flutter/ui/app/document_grid.dart'; @@ -13,6 +16,7 @@ class ProjectViewDocuments extends StatelessWidget { @override Widget build(BuildContext context) { + final store = StoreProvider.of(context); final project = viewModel.project; return DocumentGrid( @@ -20,6 +24,8 @@ class ProjectViewDocuments extends StatelessWidget { onUploadDocument: (path) => viewModel.onUploadDocument(context, path), onDeleteDocument: (document, password, idToken) => viewModel.onDeleteDocument(context, document, password, idToken), + onRenamedDocument: () => + store.dispatch(LoadProject(projectId: project.id)), ); } } diff --git a/lib/ui/settings/company_details.dart b/lib/ui/settings/company_details.dart index e676fa9c8..3b384ca59 100644 --- a/lib/ui/settings/company_details.dart +++ b/lib/ui/settings/company_details.dart @@ -1,14 +1,15 @@ // Flutter imports: import 'package:flutter/material.dart'; +import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; // Package imports: import 'package:file_picker/file_picker.dart'; -import 'package:flutter_redux/flutter_redux.dart'; // Project imports: import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/main_app.dart'; -import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/payment_term/payment_term_selectors.dart'; import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart'; import 'package:invoiceninja_flutter/redux/static/static_selectors.dart'; @@ -217,6 +218,7 @@ class _CompanyDetailsState extends State @override Widget build(BuildContext context) { + final store = StoreProvider.of(context); final localization = AppLocalization.of(context); final viewModel = widget.viewModel; final state = viewModel.state; @@ -700,6 +702,7 @@ class _CompanyDetailsState extends State viewModel.onUploadDocument(context, path), onDeleteDocument: (document, password, idToken) => viewModel .onDeleteDocument(context, document, password, idToken), + onRenamedDocument: () => store.dispatch(RefreshData()), ), ], ), diff --git a/lib/ui/task/view/task_view_documents.dart b/lib/ui/task/view/task_view_documents.dart index 5a327f7f9..7e598d2f6 100644 --- a/lib/ui/task/view/task_view_documents.dart +++ b/lib/ui/task/view/task_view_documents.dart @@ -1,5 +1,8 @@ // Flutter imports: import 'package:flutter/material.dart'; +import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; +import 'package:invoiceninja_flutter/redux/task/task_actions.dart'; // Project imports: import 'package:invoiceninja_flutter/ui/app/document_grid.dart'; @@ -13,6 +16,7 @@ class TaskViewDocuments extends StatelessWidget { @override Widget build(BuildContext context) { + final store = StoreProvider.of(context); final task = viewModel.task; return DocumentGrid( @@ -20,6 +24,7 @@ class TaskViewDocuments extends StatelessWidget { onUploadDocument: (path) => viewModel.onUploadDocument(context, path), onDeleteDocument: (document, password, idToken) => viewModel.onDeleteDocument(context, document, password, idToken), + onRenamedDocument: () => store.dispatch(LoadTask(taskId: task.id)), ); } } diff --git a/lib/ui/vendor/view/vendor_view_documents.dart b/lib/ui/vendor/view/vendor_view_documents.dart index d4158e179..4129156c4 100644 --- a/lib/ui/vendor/view/vendor_view_documents.dart +++ b/lib/ui/vendor/view/vendor_view_documents.dart @@ -1,5 +1,8 @@ // Flutter imports: import 'package:flutter/material.dart'; +import 'package:flutter_redux/flutter_redux.dart'; +import 'package:invoiceninja_flutter/redux/app/app_state.dart'; +import 'package:invoiceninja_flutter/redux/vendor/vendor_actions.dart'; // Project imports: import 'package:invoiceninja_flutter/ui/app/document_grid.dart'; @@ -13,6 +16,7 @@ class VendorViewDocuments extends StatelessWidget { @override Widget build(BuildContext context) { + final store = StoreProvider.of(context); final vendor = viewModel.vendor; return DocumentGrid( @@ -20,6 +24,7 @@ class VendorViewDocuments extends StatelessWidget { onUploadDocument: (path) => viewModel.onUploadDocument(context, path), onDeleteDocument: (document, password, idToken) => viewModel.onDeleteDocument(context, document, password, idToken), + onRenamedDocument: () => store.dispatch(LoadVendor(vendorId: vendor.id)), ); } }