diff --git a/lib/ui/app/document_grid.dart b/lib/ui/app/document_grid.dart index 8b7efeb79..67d056740 100644 --- a/lib/ui/app/document_grid.dart +++ b/lib/ui/app/document_grid.dart @@ -41,6 +41,7 @@ class DocumentGrid extends StatelessWidget { @required this.documents, @required this.onUploadDocument, @required this.onDeleteDocument, + @required this.onRenamedDocument, this.onViewExpense, }); @@ -48,6 +49,7 @@ class DocumentGrid extends StatelessWidget { final Function(MultipartFile) onUploadDocument; final Function(DocumentEntity, String, String) onDeleteDocument; final Function(DocumentEntity) onViewExpense; + final Function onRenamedDocument; @override Widget build(BuildContext context) { @@ -133,6 +135,7 @@ class DocumentGrid extends StatelessWidget { document: document, onDeleteDocument: onDeleteDocument, onViewExpense: onViewExpense, + onRenamedDocument: onRenamedDocument, isFromExpense: false, )) .toList(), @@ -149,12 +152,14 @@ class DocumentTile extends StatelessWidget { @required this.onDeleteDocument, @required this.onViewExpense, @required this.isFromExpense, + @required this.onRenamedDocument, }); final DocumentEntity document; final Function(DocumentEntity, String, String) onDeleteDocument; final Function(DocumentEntity) onViewExpense; final bool isFromExpense; + final Function onRenamedDocument; @override Widget build(BuildContext context) { @@ -260,7 +265,7 @@ class DocumentTile extends StatelessWidget { context, localization.renamedDocument) ..future.then((value) { - store.dispatch(RefreshData()); + onRenamedDocument(); }), entity: document .rebuild((b) => b..name = name)), diff --git a/lib/ui/client/view/client_view_documents.dart b/lib/ui/client/view/client_view_documents.dart index 278feee23..9e273a61a 100644 --- a/lib/ui/client/view/client_view_documents.dart +++ b/lib/ui/client/view/client_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/client/client_actions.dart'; // Project imports: import 'package:invoiceninja_flutter/ui/app/document_grid.dart'; @@ -13,6 +16,7 @@ class ClientViewDocuments extends StatelessWidget { @override Widget build(BuildContext context) { + final store = StoreProvider.of(context); final client = viewModel.client; return DocumentGrid( @@ -20,6 +24,7 @@ class ClientViewDocuments extends StatelessWidget { onUploadDocument: (path) => viewModel.onUploadDocument(context, path), onDeleteDocument: (document, password, idToken) => viewModel.onDeleteDocument(context, document, password, idToken), + onRenamedDocument: () => store.dispatch(LoadClient(clientId: client.id)), ); } } diff --git a/lib/ui/expense/edit/expense_edit_notes.dart b/lib/ui/expense/edit/expense_edit_notes.dart index 2d0b97f56..8cb056f7b 100644 --- a/lib/ui/expense/edit/expense_edit_notes.dart +++ b/lib/ui/expense/edit/expense_edit_notes.dart @@ -1,9 +1,12 @@ // 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/constants.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; +import 'package:invoiceninja_flutter/redux/expense/expense_actions.dart'; import 'package:invoiceninja_flutter/ui/app/document_grid.dart'; import 'package:invoiceninja_flutter/ui/app/form_card.dart'; import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart'; @@ -77,6 +80,7 @@ class ExpenseEditNotesState 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; @@ -115,12 +119,15 @@ class ExpenseEditNotesState extends State { ) else DocumentGrid( - documents: expense.documents.toList(), - onUploadDocument: (path) => - widget.viewModel.onUploadDocument(context, path), - onDeleteDocument: (document, password, idToken) => widget - .viewModel - .onDeleteDocument(context, document, password, idToken)) + documents: expense.documents.toList(), + onUploadDocument: (path) => + widget.viewModel.onUploadDocument(context, path), + onDeleteDocument: (document, password, idToken) => widget + .viewModel + .onDeleteDocument(context, document, password, idToken), + onRenamedDocument: () => + store.dispatch(LoadExpense(expenseId: expense.id)), + ) ], ), ],