Task statuses

This commit is contained in:
Hillel Coren 2023-05-03 22:18:01 +03:00
parent 47a1298eb7
commit c174442090
3 changed files with 82 additions and 72 deletions

View File

@ -63,6 +63,8 @@ class _CompanyGatewayListState extends State<CompanyGatewayList> {
if (state.isSaving) LinearProgressIndicator(), if (state.isSaving) LinearProgressIndicator(),
RefreshIndicator( RefreshIndicator(
onRefresh: () => widget.viewModel.onRefreshed(context), onRefresh: () => widget.viewModel.onRefreshed(context),
child: Padding(
padding: const EdgeInsets.all(8),
child: ReorderableListView( child: ReorderableListView(
scrollController: _controller, scrollController: _controller,
onReorder: (oldIndex, newIndex) { onReorder: (oldIndex, newIndex) {
@ -88,13 +90,15 @@ class _CompanyGatewayListState extends State<CompanyGatewayList> {
companyGateway: companyGateway, companyGateway: companyGateway,
onRemovePressed: widget onRemovePressed: widget
.viewModel.state.settingsUIState.isFiltered .viewModel.state.settingsUIState.isFiltered
? () => widget.viewModel.onRemovePressed(companyGatewayId) ? () =>
widget.viewModel.onRemovePressed(companyGatewayId)
: null, : null,
isChecked: isInMultiselect && isChecked: isInMultiselect &&
listUIState.isSelected(companyGateway.id)); listUIState.isSelected(companyGateway.id));
}).toList(), }).toList(),
), ),
), ),
),
], ],
); );
} }

View File

@ -63,6 +63,8 @@ class _TaskStatusListState extends State<TaskStatusList> {
if (state.isSaving) LinearProgressIndicator(), if (state.isSaving) LinearProgressIndicator(),
RefreshIndicator( RefreshIndicator(
onRefresh: () => widget.viewModel.onRefreshed(context), onRefresh: () => widget.viewModel.onRefreshed(context),
child: Padding(
padding: const EdgeInsets.all(8),
child: ReorderableListView( child: ReorderableListView(
scrollController: _controller, scrollController: _controller,
onReorder: (oldIndex, newIndex) { onReorder: (oldIndex, newIndex) {
@ -89,11 +91,12 @@ class _TaskStatusListState extends State<TaskStatusList> {
? () => widget.viewModel.onRemovePressed(companyGatewayId) ? () => widget.viewModel.onRemovePressed(companyGatewayId)
: null, : null,
*/ */
isChecked: isChecked: isInMultiselect &&
isInMultiselect && listUIState.isSelected(taskStatus.id)); listUIState.isSelected(taskStatus.id));
}).toList(), }).toList(),
), ),
), ),
),
], ],
); );
} }

View File

@ -13,6 +13,7 @@ import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/task_status/task_status_actions.dart'; import 'package:invoiceninja_flutter/redux/task_status/task_status_actions.dart';
import 'package:invoiceninja_flutter/ui/app/app_bottom_bar.dart'; import 'package:invoiceninja_flutter/ui/app/app_bottom_bar.dart';
import 'package:invoiceninja_flutter/ui/app/buttons/app_text_button.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
import 'package:invoiceninja_flutter/ui/app/list_filter.dart'; import 'package:invoiceninja_flutter/ui/app/list_filter.dart';
import 'package:invoiceninja_flutter/ui/app/list_scaffold.dart'; import 'package:invoiceninja_flutter/ui/app/list_scaffold.dart';
@ -65,7 +66,8 @@ class TaskStatusScreen extends StatelessWidget {
}, },
appBarActions: [ appBarActions: [
if (viewModel.isInMultiselect) if (viewModel.isInMultiselect)
TextButton( AppTextButton(
isInHeader: true,
onPressed: () async { onPressed: () async {
final taskStatusIds = listUIState.selectedIds final taskStatusIds = listUIState.selectedIds
.map<TaskStatusEntity>( .map<TaskStatusEntity>(
@ -80,7 +82,8 @@ class TaskStatusScreen extends StatelessWidget {
(_) => store.dispatch(ClearTaskStatusMultiselect())), (_) => store.dispatch(ClearTaskStatusMultiselect())),
); );
}, },
child: Text(localization.actions)), label: localization.actions,
),
], ],
body: TaskStatusListBuilder(), body: TaskStatusListBuilder(),
bottomNavigationBar: AppBottomBar( bottomNavigationBar: AppBottomBar(