This commit is contained in:
Hillel Coren 2019-12-01 16:48:54 +02:00
parent 4f42845706
commit f8b6ffb258
4 changed files with 52 additions and 31 deletions

View File

@ -59,6 +59,8 @@ abstract class PrefState implements Built<PrefState, PrefStateBuilder> {
bool get isDesktop => appLayout == AppLayout.desktop; bool get isDesktop => appLayout == AppLayout.desktop;
bool get isNotDesktop => !isDesktop;
bool get isTablet => appLayout == AppLayout.tablet; bool get isTablet => appLayout == AppLayout.tablet;
bool get isMobile => appLayout == AppLayout.mobile; bool get isMobile => appLayout == AppLayout.mobile;

View File

@ -65,6 +65,7 @@ class _InvoiceEditState extends State<InvoiceEdit>
final localization = AppLocalization.of(context); final localization = AppLocalization.of(context);
final viewModel = widget.viewModel; final viewModel = widget.viewModel;
final invoice = viewModel.invoice; final invoice = viewModel.invoice;
final state = viewModel.state;
return WillPopScope( return WillPopScope(
onWillPop: () async { onWillPop: () async {
@ -100,38 +101,54 @@ class _InvoiceEditState extends State<InvoiceEdit>
}, },
) )
], ],
bottom: TabBar( bottom: state.prefState.isDesktop
controller: _controller, ? null
//isScrollable: true, : TabBar(
tabs: [ controller: _controller,
Tab( //isScrollable: true,
text: localization.details, tabs: [
), Tab(
Tab( text: localization.details,
text: localization.contacts, ),
), Tab(
Tab( text: localization.contacts,
text: localization.items, ),
), Tab(
Tab( text: localization.items,
text: localization.notes, ),
), Tab(
], text: localization.notes,
), ),
), ],
body: Form( ),
key: widget.formKey,
child: TabBarView(
key: ValueKey('__invoice_${viewModel.invoice.id}__'),
controller: _controller,
children: <Widget>[
InvoiceEditDetailsScreen(),
InvoiceEditContactsScreen(),
InvoiceEditItemsScreen(),
InvoiceEditNotesScreen(),
],
),
), ),
body: state.prefState.isDesktop
? ListView(
children: <Widget>[
Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Expanded(child: InvoiceEditDetailsScreen()),
Expanded(child: InvoiceEditContactsScreen()),
],
),
],
)
: Form(
key: widget.formKey,
child: TabBarView(
key: ValueKey('__invoice_${viewModel.invoice.id}__'),
controller: _controller,
children: <Widget>[
InvoiceEditDetailsScreen(),
InvoiceEditContactsScreen(),
InvoiceEditItemsScreen(),
InvoiceEditNotesScreen(),
],
),
),
bottomNavigationBar: BottomAppBar( bottomNavigationBar: BottomAppBar(
color: Theme.of(context).primaryColor, color: Theme.of(context).primaryColor,
shape: CircularNotchedRectangle(), shape: CircularNotchedRectangle(),

View File

@ -35,6 +35,7 @@ class InvoiceEditContacts extends StatelessWidget {
}); });
return ListView( return ListView(
shrinkWrap: true,
children: contacts.map((contact) { children: contacts.map((contact) {
final invitation = invoice.getInvitationForContact(contact); final invitation = invoice.getInvitationForContact(contact);
return _ContactListTile( return _ContactListTile(

View File

@ -134,6 +134,7 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
} }
return ListView( return ListView(
shrinkWrap: true,
children: <Widget>[ children: <Widget>[
FormCard( FormCard(
children: <Widget>[ children: <Widget>[