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