Navigation...
This commit is contained in:
parent
8541a585ce
commit
eee5fe965f
|
|
@ -71,6 +71,7 @@ class EntitiesListTile extends StatelessWidget {
|
||||||
this.onLongPress,
|
this.onLongPress,
|
||||||
this.title,
|
this.title,
|
||||||
this.subtitle,
|
this.subtitle,
|
||||||
|
@required this.isFilter,
|
||||||
});
|
});
|
||||||
|
|
||||||
final Function onTap;
|
final Function onTap;
|
||||||
|
|
@ -78,16 +79,15 @@ class EntitiesListTile extends StatelessWidget {
|
||||||
final EntityType entityType;
|
final EntityType entityType;
|
||||||
final String title;
|
final String title;
|
||||||
final String subtitle;
|
final String subtitle;
|
||||||
|
final bool isFilter;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final store = StoreProvider.of<AppState>(context);
|
final store = StoreProvider.of<AppState>(context);
|
||||||
final state = store.state;
|
final state = store.state;
|
||||||
final mainRoute = state.uiState.mainRoute;
|
final mainRoute = state.uiState.mainRoute;
|
||||||
final isFiltered =
|
final isFilterMatch =
|
||||||
isNotMobile(context) && state.uiState.filterEntityType != null;
|
isFilter && entityType.toString() == mainRoute.replaceFirst('/', '');
|
||||||
final isFIlterMatch =
|
|
||||||
isFiltered && entityType.toString() == mainRoute.replaceFirst('/', '');
|
|
||||||
|
|
||||||
return Column(
|
return Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
|
@ -95,7 +95,7 @@ class EntitiesListTile extends StatelessWidget {
|
||||||
Material(
|
Material(
|
||||||
color: Theme.of(context).cardColor,
|
color: Theme.of(context).cardColor,
|
||||||
child: SelectedIndicator(
|
child: SelectedIndicator(
|
||||||
isSelected: isFIlterMatch,
|
isSelected: isFilterMatch,
|
||||||
isMenu: true,
|
isMenu: true,
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 10),
|
padding: const EdgeInsets.symmetric(horizontal: 10),
|
||||||
|
|
@ -103,7 +103,7 @@ class EntitiesListTile extends StatelessWidget {
|
||||||
title: Text(title),
|
title: Text(title),
|
||||||
subtitle: Text(subtitle ?? ''),
|
subtitle: Text(subtitle ?? ''),
|
||||||
leading: Icon(getEntityIcon(entityType), size: 18.0),
|
leading: Icon(getEntityIcon(entityType), size: 18.0),
|
||||||
trailing: isFiltered ? null : Icon(Icons.navigate_next),
|
trailing: isFilter ? null : Icon(Icons.navigate_next),
|
||||||
onTap: onTap,
|
onTap: onTap,
|
||||||
onLongPress: onLongPress,
|
onLongPress: onLongPress,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_flat_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/action_flat_button.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
|
||||||
|
|
||||||
class SaveCancelButtons extends StatelessWidget {
|
class SaveCancelButtons extends StatelessWidget {
|
||||||
const SaveCancelButtons({
|
const SaveCancelButtons({
|
||||||
|
|
|
||||||
|
|
@ -12,13 +12,11 @@ import 'package:invoiceninja_flutter/redux/quote/quote_selectors.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/task/task_selectors.dart';
|
import 'package:invoiceninja_flutter/redux/task/task_selectors.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/FieldGrid.dart';
|
import 'package:invoiceninja_flutter/ui/app/FieldGrid.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/entities/entity_list_tile.dart';
|
import 'package:invoiceninja_flutter/ui/app/entities/entity_list_tile.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/entities/entity_state_title.dart';
|
|
||||||
import 'package:invoiceninja_flutter/ui/app/entity_header.dart';
|
import 'package:invoiceninja_flutter/ui/app/entity_header.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/icon_message.dart';
|
import 'package:invoiceninja_flutter/ui/app/icon_message.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart';
|
import 'package:invoiceninja_flutter/ui/app/lists/list_divider.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/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/icons.dart';
|
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ClientOverview extends StatelessWidget {
|
class ClientOverview extends StatelessWidget {
|
||||||
|
|
@ -105,6 +103,7 @@ class ClientOverview extends StatelessWidget {
|
||||||
FieldGrid(fields),
|
FieldGrid(fields),
|
||||||
ListDivider(),
|
ListDivider(),
|
||||||
EntitiesListTile(
|
EntitiesListTile(
|
||||||
|
isFilter: isFilter,
|
||||||
entityType: EntityType.invoice,
|
entityType: EntityType.invoice,
|
||||||
title: localization.invoices,
|
title: localization.invoices,
|
||||||
onTap: () => viewModel.onEntityPressed(context, EntityType.invoice),
|
onTap: () => viewModel.onEntityPressed(context, EntityType.invoice),
|
||||||
|
|
@ -115,6 +114,7 @@ class ClientOverview extends StatelessWidget {
|
||||||
.present(localization.active, localization.archived),
|
.present(localization.active, localization.archived),
|
||||||
),
|
),
|
||||||
EntitiesListTile(
|
EntitiesListTile(
|
||||||
|
isFilter: isFilter,
|
||||||
entityType: EntityType.payment,
|
entityType: EntityType.payment,
|
||||||
title: localization.payments,
|
title: localization.payments,
|
||||||
onTap: () => viewModel.onEntityPressed(context, EntityType.payment),
|
onTap: () => viewModel.onEntityPressed(context, EntityType.payment),
|
||||||
|
|
@ -126,6 +126,7 @@ class ClientOverview extends StatelessWidget {
|
||||||
),
|
),
|
||||||
if (company.isModuleEnabled(EntityType.quote))
|
if (company.isModuleEnabled(EntityType.quote))
|
||||||
EntitiesListTile(
|
EntitiesListTile(
|
||||||
|
isFilter: isFilter,
|
||||||
entityType: EntityType.quote,
|
entityType: EntityType.quote,
|
||||||
title: localization.quotes,
|
title: localization.quotes,
|
||||||
onTap: () => viewModel.onEntityPressed(context, EntityType.quote),
|
onTap: () => viewModel.onEntityPressed(context, EntityType.quote),
|
||||||
|
|
@ -137,6 +138,7 @@ class ClientOverview extends StatelessWidget {
|
||||||
),
|
),
|
||||||
if (company.isModuleEnabled(EntityType.credit))
|
if (company.isModuleEnabled(EntityType.credit))
|
||||||
EntitiesListTile(
|
EntitiesListTile(
|
||||||
|
isFilter: isFilter,
|
||||||
entityType: EntityType.credit,
|
entityType: EntityType.credit,
|
||||||
title: localization.credits,
|
title: localization.credits,
|
||||||
onTap: () => viewModel.onEntityPressed(context, EntityType.credit),
|
onTap: () => viewModel.onEntityPressed(context, EntityType.credit),
|
||||||
|
|
@ -148,6 +150,7 @@ class ClientOverview extends StatelessWidget {
|
||||||
),
|
),
|
||||||
if (company.isModuleEnabled(EntityType.project))
|
if (company.isModuleEnabled(EntityType.project))
|
||||||
EntitiesListTile(
|
EntitiesListTile(
|
||||||
|
isFilter: isFilter,
|
||||||
entityType: EntityType.project,
|
entityType: EntityType.project,
|
||||||
title: localization.projects,
|
title: localization.projects,
|
||||||
onTap: () => viewModel.onEntityPressed(context, EntityType.project),
|
onTap: () => viewModel.onEntityPressed(context, EntityType.project),
|
||||||
|
|
@ -159,6 +162,7 @@ class ClientOverview extends StatelessWidget {
|
||||||
),
|
),
|
||||||
if (company.isModuleEnabled(EntityType.task))
|
if (company.isModuleEnabled(EntityType.task))
|
||||||
EntitiesListTile(
|
EntitiesListTile(
|
||||||
|
isFilter: isFilter,
|
||||||
entityType: EntityType.task,
|
entityType: EntityType.task,
|
||||||
title: localization.tasks,
|
title: localization.tasks,
|
||||||
onTap: () => viewModel.onEntityPressed(context, EntityType.task),
|
onTap: () => viewModel.onEntityPressed(context, EntityType.task),
|
||||||
|
|
@ -169,6 +173,7 @@ class ClientOverview extends StatelessWidget {
|
||||||
),
|
),
|
||||||
if (company.isModuleEnabled(EntityType.expense))
|
if (company.isModuleEnabled(EntityType.expense))
|
||||||
EntitiesListTile(
|
EntitiesListTile(
|
||||||
|
isFilter: isFilter,
|
||||||
entityType: EntityType.expense,
|
entityType: EntityType.expense,
|
||||||
title: localization.expenses,
|
title: localization.expenses,
|
||||||
onTap: () => viewModel.onEntityPressed(context, EntityType.expense),
|
onTap: () => viewModel.onEntityPressed(context, EntityType.expense),
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,7 @@ class _GroupViewState extends State<GroupView> {
|
||||||
),
|
),
|
||||||
ListDivider(),
|
ListDivider(),
|
||||||
EntitiesListTile(
|
EntitiesListTile(
|
||||||
|
isFilter: widget.isFilter,
|
||||||
entityType: EntityType.client,
|
entityType: EntityType.client,
|
||||||
title: localization.clients,
|
title: localization.clients,
|
||||||
onTap: () => viewModel.onClientsPressed(context),
|
onTap: () => viewModel.onClientsPressed(context),
|
||||||
|
|
|
||||||
|
|
@ -109,6 +109,7 @@ class _ProjectViewState extends State<ProjectView> {
|
||||||
height: 12.0,
|
height: 12.0,
|
||||||
),
|
),
|
||||||
EntitiesListTile(
|
EntitiesListTile(
|
||||||
|
isFilter: widget.isFilter,
|
||||||
entityType: EntityType.task,
|
entityType: EntityType.task,
|
||||||
title: localization.tasks,
|
title: localization.tasks,
|
||||||
onTap: () => viewModel.onTasksPressed(context),
|
onTap: () => viewModel.onTasksPressed(context),
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ class UserView extends StatelessWidget {
|
||||||
height: 1.0,
|
height: 1.0,
|
||||||
),
|
),
|
||||||
EntitiesListTile(
|
EntitiesListTile(
|
||||||
|
isFilter: isFilter,
|
||||||
title: localization.invoices,
|
title: localization.invoices,
|
||||||
onTap: () => viewModel.onEntityPressed(context, EntityType.invoice),
|
onTap: () => viewModel.onEntityPressed(context, EntityType.invoice),
|
||||||
onLongPress: () =>
|
onLongPress: () =>
|
||||||
|
|
@ -53,6 +54,7 @@ class UserView extends StatelessWidget {
|
||||||
.present(localization.active, localization.archived),
|
.present(localization.active, localization.archived),
|
||||||
),
|
),
|
||||||
EntitiesListTile(
|
EntitiesListTile(
|
||||||
|
isFilter: isFilter,
|
||||||
entityType: EntityType.payment,
|
entityType: EntityType.payment,
|
||||||
title: localization.payments,
|
title: localization.payments,
|
||||||
onTap: () => viewModel.onEntityPressed(context, EntityType.payment),
|
onTap: () => viewModel.onEntityPressed(context, EntityType.payment),
|
||||||
|
|
@ -64,6 +66,7 @@ class UserView extends StatelessWidget {
|
||||||
),
|
),
|
||||||
company.isModuleEnabled(EntityType.quote)
|
company.isModuleEnabled(EntityType.quote)
|
||||||
? EntitiesListTile(
|
? EntitiesListTile(
|
||||||
|
isFilter: isFilter,
|
||||||
entityType: EntityType.quote,
|
entityType: EntityType.quote,
|
||||||
title: localization.quotes,
|
title: localization.quotes,
|
||||||
onTap: () =>
|
onTap: () =>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue