Fix for app context
This commit is contained in:
parent
d3f7b76540
commit
eb50cf16d7
|
|
@ -254,18 +254,18 @@ void filterByEntity({
|
|||
}
|
||||
|
||||
void viewEntitiesByType({
|
||||
@required BuildContext context,
|
||||
@required AppContext appContext,
|
||||
@required EntityType entityType,
|
||||
BaseEntity filterEntity,
|
||||
}) {
|
||||
final store = StoreProvider.of<AppState>(context);
|
||||
final store = appContext.store;
|
||||
final navigator = appContext.navigator;
|
||||
final uiState = store.state.uiState;
|
||||
final navigator = Navigator.of(context);
|
||||
dynamic action;
|
||||
|
||||
checkForChanges(
|
||||
store: store,
|
||||
context: context,
|
||||
context: appContext.buildContext,
|
||||
callback: () {
|
||||
if (filterEntity != null) {
|
||||
if (uiState.filterEntityType != filterEntity.entityType ||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
import 'package:invoiceninja_flutter/utils/app_context.dart';
|
||||
|
||||
class AppShortcuts extends StatefulWidget {
|
||||
const AppShortcuts({Key key, this.child}) : super(key: key);
|
||||
|
|
@ -59,7 +60,8 @@ class AppShortcutsState extends State<AppShortcuts> {
|
|||
break;
|
||||
case _ShortcutIntentType.list:
|
||||
viewEntitiesByType(
|
||||
context: context, entityType: intent.entityType);
|
||||
appContext: context.getAppContext(),
|
||||
entityType: intent.entityType);
|
||||
break;
|
||||
case _ShortcutIntentType.back:
|
||||
Navigator.of(context).maybePop();
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ class _EntitiesListTileState extends State<EntitiesListTile> {
|
|||
bool _isHovered = false;
|
||||
|
||||
void _onTap(BuildContext context) => viewEntitiesByType(
|
||||
context: context,
|
||||
appContext: context.getAppContext(),
|
||||
entityType: widget.entityType,
|
||||
filterEntity: widget.entity);
|
||||
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ class EntityTopFilter extends StatelessWidget {
|
|||
),
|
||||
onPressed: () {
|
||||
viewEntitiesByType(
|
||||
context: context,
|
||||
appContext: context.getAppContext(),
|
||||
entityType: relatedTypes[i],
|
||||
filterEntity: filterEntity,
|
||||
);
|
||||
|
|
@ -159,7 +159,7 @@ class EntityTopFilter extends StatelessWidget {
|
|||
);
|
||||
} else {
|
||||
viewEntitiesByType(
|
||||
context: context,
|
||||
appContext: context.getAppContext(),
|
||||
entityType: value,
|
||||
filterEntity: filterEntity,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ import 'package:invoiceninja_flutter/utils/localization.dart';
|
|||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:invoiceninja_flutter/utils/colors.dart';
|
||||
import 'package:invoiceninja_flutter/utils/app_context.dart';
|
||||
|
||||
class MenuDrawer extends StatelessWidget {
|
||||
const MenuDrawer({
|
||||
|
|
@ -303,7 +304,7 @@ class MenuDrawer extends StatelessWidget {
|
|||
icon: getEntityIcon(EntityType.dashboard),
|
||||
title: localization.dashboard,
|
||||
onTap: () => viewEntitiesByType(
|
||||
context: context,
|
||||
appContext: context.getAppContext(),
|
||||
entityType: EntityType.dashboard),
|
||||
onLongPress: () => store.dispatch(ViewDashboard(
|
||||
navigator: Navigator.of(context), filter: '')),
|
||||
|
|
@ -393,7 +394,7 @@ class MenuDrawer extends StatelessWidget {
|
|||
icon: getEntityIcon(EntityType.kanban),
|
||||
title: localization.kanban,
|
||||
onTap: () => viewEntitiesByType(
|
||||
context: context,
|
||||
appContext: context.getAppContext(),
|
||||
entityType: EntityType.kanban),
|
||||
),
|
||||
DrawerTile(
|
||||
|
|
@ -401,7 +402,7 @@ class MenuDrawer extends StatelessWidget {
|
|||
icon: getEntityIcon(EntityType.reports),
|
||||
title: localization.reports,
|
||||
onTap: () => viewEntitiesByType(
|
||||
context: context,
|
||||
appContext: context.getAppContext(),
|
||||
entityType: EntityType.reports),
|
||||
),
|
||||
DrawerTile(
|
||||
|
|
@ -409,7 +410,7 @@ class MenuDrawer extends StatelessWidget {
|
|||
icon: getEntityIcon(EntityType.settings),
|
||||
title: localization.settings,
|
||||
onTap: () => viewEntitiesByType(
|
||||
context: context,
|
||||
appContext: context.getAppContext(),
|
||||
entityType: EntityType.settings),
|
||||
),
|
||||
],
|
||||
|
|
@ -572,7 +573,10 @@ class _DrawerTileState extends State<DrawerTile> {
|
|||
),
|
||||
onTap: () {
|
||||
if (widget.entityType != null) {
|
||||
viewEntitiesByType(context: context, entityType: widget.entityType);
|
||||
viewEntitiesByType(
|
||||
appContext: context.getAppContext(),
|
||||
entityType: widget.entityType,
|
||||
);
|
||||
} else {
|
||||
widget.onTap();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@ import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart';
|
|||
import 'package:invoiceninja_flutter/ui/client/edit/client_edit.dart';
|
||||
import 'package:invoiceninja_flutter/ui/client/view/client_view_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:invoiceninja_flutter/utils/app_context.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ class ExpenseCategoryEditVM {
|
|||
}
|
||||
} else {
|
||||
viewEntity(
|
||||
appContext: context.getAppContext(),
|
||||
appContext: appContext,
|
||||
entity: savedExpenseCategory,
|
||||
force: true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ class GroupViewVM {
|
|||
handleGroupAction(context, [group], EntityAction.newClient);
|
||||
} else {
|
||||
viewEntitiesByType(
|
||||
context: context,
|
||||
appContext: context.getAppContext(),
|
||||
entityType: EntityType.client,
|
||||
filterEntity: group);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -142,12 +142,13 @@ class InvoiceViewVM extends EntityViewVM {
|
|||
onRefreshed: (context) => _handleRefresh(context),
|
||||
onPaymentsPressed: (BuildContext context) {
|
||||
viewEntitiesByType(
|
||||
context: context,
|
||||
appContext: context.getAppContext(),
|
||||
entityType: EntityType.payment,
|
||||
filterEntity: invoice);
|
||||
},
|
||||
onEntityAction: (BuildContext context, EntityAction action) =>
|
||||
handleEntitiesActions(context.getAppContext(), [invoice], action, autoPop: true),
|
||||
handleEntitiesActions(context.getAppContext(), [invoice], action,
|
||||
autoPop: true),
|
||||
onUploadDocument: (BuildContext context, MultipartFile multipartFile) {
|
||||
final Completer<DocumentEntity> completer = Completer<DocumentEntity>();
|
||||
store.dispatch(SaveInvoiceDocumentRequest(
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import 'package:invoiceninja_flutter/ui/payment_term/payment_term_screen.dart';
|
|||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||
import 'package:invoiceninja_flutter/utils/app_context.dart';
|
||||
import 'package:redux/redux.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart';
|
||||
|
|
@ -71,6 +72,7 @@ class PaymentTermEditVM {
|
|||
store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute));
|
||||
},
|
||||
onSavePressed: (BuildContext context) {
|
||||
final appContext = context.getAppContext();
|
||||
Debouncer.runOnComplete(() {
|
||||
final paymentTerm = store.state.paymentTermUIState.editing;
|
||||
final localization = AppLocalization.of(context);
|
||||
|
|
@ -82,7 +84,6 @@ class PaymentTermEditVM {
|
|||
showToast(paymentTerm.isNew
|
||||
? localization.createdPaymentTerm
|
||||
: localization.updatedPaymentTerm);
|
||||
|
||||
if (state.prefState.isMobile) {
|
||||
store.dispatch(UpdateCurrentRoute(PaymentTermScreen.route));
|
||||
if (paymentTerm.isNew) {
|
||||
|
|
@ -93,7 +94,9 @@ class PaymentTermEditVM {
|
|||
}
|
||||
} else {
|
||||
viewEntitiesByType(
|
||||
context: context, entityType: EntityType.paymentTerm);
|
||||
appContext: appContext,
|
||||
entityType: EntityType.paymentTerm,
|
||||
);
|
||||
}
|
||||
}).catchError((Object error) {
|
||||
showDialog<ErrorDialog>(
|
||||
|
|
|
|||
|
|
@ -90,7 +90,10 @@ class ProjectViewVM {
|
|||
context, [project], EntityAction.newEntityType(entityType));
|
||||
} else {
|
||||
viewEntitiesByType(
|
||||
context: context, entityType: entityType, filterEntity: project);
|
||||
appContext: context.getAppContext(),
|
||||
entityType: entityType,
|
||||
filterEntity: project,
|
||||
);
|
||||
}
|
||||
},
|
||||
onAddTaskPressed: (context) {
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ class VendorViewVM {
|
|||
entity: ExpenseEntity(state: state, vendor: vendor));
|
||||
} else {
|
||||
viewEntitiesByType(
|
||||
context: context,
|
||||
appContext: context.getAppContext(),
|
||||
entityType: EntityType.expense,
|
||||
filterEntity: vendor);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue