Navigation...

This commit is contained in:
Hillel Coren 2020-05-20 14:57:49 +03:00
parent 8541a585ce
commit eee5fe965f
6 changed files with 18 additions and 9 deletions

View File

@ -71,6 +71,7 @@ class EntitiesListTile extends StatelessWidget {
this.onLongPress,
this.title,
this.subtitle,
@required this.isFilter,
});
final Function onTap;
@ -78,16 +79,15 @@ class EntitiesListTile extends StatelessWidget {
final EntityType entityType;
final String title;
final String subtitle;
final bool isFilter;
@override
Widget build(BuildContext context) {
final store = StoreProvider.of<AppState>(context);
final state = store.state;
final mainRoute = state.uiState.mainRoute;
final isFiltered =
isNotMobile(context) && state.uiState.filterEntityType != null;
final isFIlterMatch =
isFiltered && entityType.toString() == mainRoute.replaceFirst('/', '');
final isFilterMatch =
isFilter && entityType.toString() == mainRoute.replaceFirst('/', '');
return Column(
mainAxisSize: MainAxisSize.min,
@ -95,7 +95,7 @@ class EntitiesListTile extends StatelessWidget {
Material(
color: Theme.of(context).cardColor,
child: SelectedIndicator(
isSelected: isFIlterMatch,
isSelected: isFilterMatch,
isMenu: true,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 10),
@ -103,7 +103,7 @@ class EntitiesListTile extends StatelessWidget {
title: Text(title),
subtitle: Text(subtitle ?? ''),
leading: Icon(getEntityIcon(entityType), size: 18.0),
trailing: isFiltered ? null : Icon(Icons.navigate_next),
trailing: isFilter ? null : Icon(Icons.navigate_next),
onTap: onTap,
onLongPress: onLongPress,
),

View File

@ -1,7 +1,6 @@
import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/ui/app/buttons/action_flat_button.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/utils/platforms.dart';
class SaveCancelButtons extends StatelessWidget {
const SaveCancelButtons({

View File

@ -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/ui/app/FieldGrid.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/icon_message.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/utils/formatting.dart';
import 'package:invoiceninja_flutter/utils/icons.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ClientOverview extends StatelessWidget {
@ -105,6 +103,7 @@ class ClientOverview extends StatelessWidget {
FieldGrid(fields),
ListDivider(),
EntitiesListTile(
isFilter: isFilter,
entityType: EntityType.invoice,
title: localization.invoices,
onTap: () => viewModel.onEntityPressed(context, EntityType.invoice),
@ -115,6 +114,7 @@ class ClientOverview extends StatelessWidget {
.present(localization.active, localization.archived),
),
EntitiesListTile(
isFilter: isFilter,
entityType: EntityType.payment,
title: localization.payments,
onTap: () => viewModel.onEntityPressed(context, EntityType.payment),
@ -126,6 +126,7 @@ class ClientOverview extends StatelessWidget {
),
if (company.isModuleEnabled(EntityType.quote))
EntitiesListTile(
isFilter: isFilter,
entityType: EntityType.quote,
title: localization.quotes,
onTap: () => viewModel.onEntityPressed(context, EntityType.quote),
@ -137,6 +138,7 @@ class ClientOverview extends StatelessWidget {
),
if (company.isModuleEnabled(EntityType.credit))
EntitiesListTile(
isFilter: isFilter,
entityType: EntityType.credit,
title: localization.credits,
onTap: () => viewModel.onEntityPressed(context, EntityType.credit),
@ -148,6 +150,7 @@ class ClientOverview extends StatelessWidget {
),
if (company.isModuleEnabled(EntityType.project))
EntitiesListTile(
isFilter: isFilter,
entityType: EntityType.project,
title: localization.projects,
onTap: () => viewModel.onEntityPressed(context, EntityType.project),
@ -159,6 +162,7 @@ class ClientOverview extends StatelessWidget {
),
if (company.isModuleEnabled(EntityType.task))
EntitiesListTile(
isFilter: isFilter,
entityType: EntityType.task,
title: localization.tasks,
onTap: () => viewModel.onEntityPressed(context, EntityType.task),
@ -169,6 +173,7 @@ class ClientOverview extends StatelessWidget {
),
if (company.isModuleEnabled(EntityType.expense))
EntitiesListTile(
isFilter: isFilter,
entityType: EntityType.expense,
title: localization.expenses,
onTap: () => viewModel.onEntityPressed(context, EntityType.expense),

View File

@ -55,6 +55,7 @@ class _GroupViewState extends State<GroupView> {
),
ListDivider(),
EntitiesListTile(
isFilter: widget.isFilter,
entityType: EntityType.client,
title: localization.clients,
onTap: () => viewModel.onClientsPressed(context),

View File

@ -109,6 +109,7 @@ class _ProjectViewState extends State<ProjectView> {
height: 12.0,
),
EntitiesListTile(
isFilter: widget.isFilter,
entityType: EntityType.task,
title: localization.tasks,
onTap: () => viewModel.onTasksPressed(context),

View File

@ -44,6 +44,7 @@ class UserView extends StatelessWidget {
height: 1.0,
),
EntitiesListTile(
isFilter: isFilter,
title: localization.invoices,
onTap: () => viewModel.onEntityPressed(context, EntityType.invoice),
onLongPress: () =>
@ -53,6 +54,7 @@ class UserView extends StatelessWidget {
.present(localization.active, localization.archived),
),
EntitiesListTile(
isFilter: isFilter,
entityType: EntityType.payment,
title: localization.payments,
onTap: () => viewModel.onEntityPressed(context, EntityType.payment),
@ -64,6 +66,7 @@ class UserView extends StatelessWidget {
),
company.isModuleEnabled(EntityType.quote)
? EntitiesListTile(
isFilter: isFilter,
entityType: EntityType.quote,
title: localization.quotes,
onTap: () =>