Add contacts edit screen to quote/credits
This commit is contained in:
parent
294702a2c1
commit
8195a4729a
|
|
@ -1,5 +1,7 @@
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_contacts_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_footer.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_item_selector.dart';
|
||||
|
|
@ -41,7 +43,7 @@ class _CreditEditState extends State<CreditEdit>
|
|||
|
||||
final index =
|
||||
viewModel.invoiceItemIndex != null ? kItemScreen : kDetailsScreen;
|
||||
_controller = TabController(vsync: this, length: 3, initialIndex: index);
|
||||
_controller = TabController(vsync: this, length: 4, initialIndex: index);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
@ -65,8 +67,11 @@ class _CreditEditState extends State<CreditEdit>
|
|||
final viewModel = widget.viewModel;
|
||||
final invoice = viewModel.invoice;
|
||||
final state = viewModel.state;
|
||||
final prefState = state.prefState;
|
||||
final isFullscreen = prefState.isEditorFullScreen(EntityType.invoice);
|
||||
|
||||
return EditScaffold(
|
||||
isFullscreen: isFullscreen,
|
||||
entity: invoice,
|
||||
title: invoice.isNew ? localization.newCredit : localization.editCredit,
|
||||
onCancelPressed: (context) => viewModel.onCancelPressed(context),
|
||||
|
|
@ -85,7 +90,7 @@ class _CreditEditState extends State<CreditEdit>
|
|||
|
||||
viewModel.onSavePressed(context);
|
||||
},
|
||||
appBarBottom: state.prefState.isDesktop
|
||||
appBarBottom: isFullscreen
|
||||
? null
|
||||
: TabBar(
|
||||
controller: _controller,
|
||||
|
|
@ -94,6 +99,9 @@ class _CreditEditState extends State<CreditEdit>
|
|||
Tab(
|
||||
text: localization.details,
|
||||
),
|
||||
Tab(
|
||||
text: localization.contacts,
|
||||
),
|
||||
Tab(
|
||||
text: localization.items,
|
||||
),
|
||||
|
|
@ -104,7 +112,7 @@ class _CreditEditState extends State<CreditEdit>
|
|||
),
|
||||
body: Form(
|
||||
key: _formKey,
|
||||
child: state.prefState.isDesktop
|
||||
child: isFullscreen
|
||||
? CreditEditDetailsScreen(
|
||||
viewModel: widget.viewModel,
|
||||
)
|
||||
|
|
@ -115,6 +123,9 @@ class _CreditEditState extends State<CreditEdit>
|
|||
CreditEditDetailsScreen(
|
||||
viewModel: widget.viewModel,
|
||||
),
|
||||
InvoiceEditContactsScreen(
|
||||
entityType: invoice.entityType,
|
||||
),
|
||||
CreditEditItemsScreen(
|
||||
viewModel: widget.viewModel,
|
||||
),
|
||||
|
|
@ -141,7 +152,9 @@ class _CreditEditState extends State<CreditEdit>
|
|||
clientId: invoice.clientId,
|
||||
onItemsSelected: (items, [clientId]) {
|
||||
viewModel.onItemsAdded(items, clientId);
|
||||
_controller.animateTo(kItemScreen);
|
||||
if (!isFullscreen) {
|
||||
_controller.animateTo(kItemScreen);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_contacts_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_footer.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_item_selector.dart';
|
||||
|
|
@ -41,7 +43,7 @@ class _QuoteEditState extends State<QuoteEdit>
|
|||
|
||||
final index =
|
||||
viewModel.invoiceItemIndex != null ? kItemScreen : kDetailsScreen;
|
||||
_controller = TabController(vsync: this, length: 3, initialIndex: index);
|
||||
_controller = TabController(vsync: this, length: 4, initialIndex: index);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
@ -65,8 +67,11 @@ class _QuoteEditState extends State<QuoteEdit>
|
|||
final viewModel = widget.viewModel;
|
||||
final invoice = viewModel.invoice;
|
||||
final state = viewModel.state;
|
||||
final prefState = state.prefState;
|
||||
final isFullscreen = prefState.isEditorFullScreen(EntityType.invoice);
|
||||
|
||||
return EditScaffold(
|
||||
isFullscreen: isFullscreen,
|
||||
entity: invoice,
|
||||
title: invoice.isNew ? localization.newQuote : localization.editQuote,
|
||||
onCancelPressed: (context) => viewModel.onCancelPressed(context),
|
||||
|
|
@ -85,7 +90,7 @@ class _QuoteEditState extends State<QuoteEdit>
|
|||
|
||||
viewModel.onSavePressed(context);
|
||||
},
|
||||
appBarBottom: state.prefState.isDesktop
|
||||
appBarBottom: isFullscreen
|
||||
? null
|
||||
: TabBar(
|
||||
controller: _controller,
|
||||
|
|
@ -94,6 +99,9 @@ class _QuoteEditState extends State<QuoteEdit>
|
|||
Tab(
|
||||
text: localization.details,
|
||||
),
|
||||
Tab(
|
||||
text: localization.contacts,
|
||||
),
|
||||
Tab(
|
||||
text: localization.items,
|
||||
),
|
||||
|
|
@ -104,7 +112,7 @@ class _QuoteEditState extends State<QuoteEdit>
|
|||
),
|
||||
body: Form(
|
||||
key: _formKey,
|
||||
child: state.prefState.isDesktop
|
||||
child: isFullscreen
|
||||
? QuoteEditDetailsScreen(
|
||||
viewModel: widget.viewModel,
|
||||
)
|
||||
|
|
@ -115,6 +123,9 @@ class _QuoteEditState extends State<QuoteEdit>
|
|||
QuoteEditDetailsScreen(
|
||||
viewModel: widget.viewModel,
|
||||
),
|
||||
InvoiceEditContactsScreen(
|
||||
entityType: invoice.entityType,
|
||||
),
|
||||
QuoteEditItemsScreen(
|
||||
viewModel: widget.viewModel,
|
||||
),
|
||||
|
|
@ -141,7 +152,9 @@ class _QuoteEditState extends State<QuoteEdit>
|
|||
clientId: invoice.clientId,
|
||||
onItemsSelected: (items, [clientId]) {
|
||||
viewModel.onItemsAdded(items, clientId);
|
||||
_controller.animateTo(kItemScreen);
|
||||
if (!isFullscreen) {
|
||||
_controller.animateTo(kItemScreen);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_contacts_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_footer.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_item_selector.dart';
|
||||
|
|
@ -40,7 +42,7 @@ class _RecurringInvoiceEditState extends State<RecurringInvoiceEdit>
|
|||
|
||||
final index =
|
||||
viewModel.invoiceItemIndex != null ? kItemScreen : kDetailsScreen;
|
||||
_controller = TabController(vsync: this, length: 3, initialIndex: index);
|
||||
_controller = TabController(vsync: this, length: 4, initialIndex: index);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
@ -65,8 +67,11 @@ class _RecurringInvoiceEditState extends State<RecurringInvoiceEdit>
|
|||
final recurringInvoice = viewModel.invoice;
|
||||
final state = viewModel.state;
|
||||
final invoice = viewModel.invoice;
|
||||
final prefState = state.prefState;
|
||||
final isFullscreen = prefState.isEditorFullScreen(EntityType.invoice);
|
||||
|
||||
return EditScaffold(
|
||||
isFullscreen: isFullscreen,
|
||||
title: recurringInvoice.isNew
|
||||
? localization.newRecurringInvoice
|
||||
: localization.editRecurringInvoice,
|
||||
|
|
@ -86,7 +91,7 @@ class _RecurringInvoiceEditState extends State<RecurringInvoiceEdit>
|
|||
|
||||
viewModel.onSavePressed(context);
|
||||
},
|
||||
appBarBottom: state.prefState.isDesktop
|
||||
appBarBottom: isFullscreen
|
||||
? null
|
||||
: TabBar(
|
||||
controller: _controller,
|
||||
|
|
@ -95,6 +100,9 @@ class _RecurringInvoiceEditState extends State<RecurringInvoiceEdit>
|
|||
Tab(
|
||||
text: localization.details,
|
||||
),
|
||||
Tab(
|
||||
text: localization.contacts,
|
||||
),
|
||||
Tab(
|
||||
text: localization.items,
|
||||
),
|
||||
|
|
@ -105,7 +113,7 @@ class _RecurringInvoiceEditState extends State<RecurringInvoiceEdit>
|
|||
),
|
||||
body: Form(
|
||||
key: _formKey,
|
||||
child: state.prefState.isDesktop
|
||||
child: isFullscreen
|
||||
? RecurringInvoiceEditDetailsScreen(
|
||||
viewModel: widget.viewModel,
|
||||
)
|
||||
|
|
@ -116,6 +124,9 @@ class _RecurringInvoiceEditState extends State<RecurringInvoiceEdit>
|
|||
RecurringInvoiceEditDetailsScreen(
|
||||
viewModel: widget.viewModel,
|
||||
),
|
||||
InvoiceEditContactsScreen(
|
||||
entityType: invoice.entityType,
|
||||
),
|
||||
RecurringInvoiceEditItemsScreen(
|
||||
viewModel: widget.viewModel,
|
||||
),
|
||||
|
|
@ -142,7 +153,9 @@ class _RecurringInvoiceEditState extends State<RecurringInvoiceEdit>
|
|||
clientId: invoice.clientId,
|
||||
onItemsSelected: (items, [clientId]) {
|
||||
viewModel.onItemsAdded(items, clientId);
|
||||
_controller.animateTo(kItemScreen);
|
||||
if (!isFullscreen) {
|
||||
_controller.animateTo(kItemScreen);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue