Reload entity after renaming doc

This commit is contained in:
Hillel Coren 2023-05-25 13:18:06 +03:00
parent be306774c8
commit cb6944ac02
10 changed files with 62 additions and 16 deletions

View File

@ -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';

View File

@ -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<AppState>(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,
);
}

View File

@ -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<GroupView>
@override
Widget build(BuildContext context) {
final store = StoreProvider.of<AppState>(context);
final localization = AppLocalization.of(context);
final viewModel = widget.viewModel;
final state = viewModel.state;
@ -110,6 +112,8 @@ class _GroupViewState extends State<GroupView>
viewModel.onUploadDocument(context, path),
onDeleteDocument: (document, password, idToken) => viewModel
.onDeleteDocument(context, document, password, idToken),
onRenamedDocument: () =>
store.dispatch(LoadGroup(groupId: group.id)),
),
],
),

View File

@ -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<InvoiceEditDesktop>
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)),
)
],
),
),

View File

@ -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<AppState>(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)),
);
}
}

View File

@ -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<AppState>(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)),
);
}
}

View File

@ -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<AppState>(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)),
);
}
}

View File

@ -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<CompanyDetails>
@override
Widget build(BuildContext context) {
final store = StoreProvider.of<AppState>(context);
final localization = AppLocalization.of(context);
final viewModel = widget.viewModel;
final state = viewModel.state;
@ -700,6 +702,7 @@ class _CompanyDetailsState extends State<CompanyDetails>
viewModel.onUploadDocument(context, path),
onDeleteDocument: (document, password, idToken) => viewModel
.onDeleteDocument(context, document, password, idToken),
onRenamedDocument: () => store.dispatch(RefreshData()),
),
],
),

View File

@ -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<AppState>(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)),
);
}
}

View File

@ -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<AppState>(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)),
);
}
}