PDF preview
This commit is contained in:
parent
1d97dd29b4
commit
93bcff1165
|
|
@ -26,7 +26,7 @@ class CreditEditItemsScreen extends StatelessWidget {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return StoreConnector<AppState, CreditEditItemsVM>(
|
return StoreConnector<AppState, CreditEditItemsVM>(
|
||||||
converter: (Store<AppState> store) {
|
converter: (Store<AppState> store) {
|
||||||
return CreditEditItemsVM.fromStore(store, isTasks);
|
return CreditEditItemsVM.fromStore(store, onChanged, isTasks);
|
||||||
},
|
},
|
||||||
builder: (context, viewModel) {
|
builder: (context, viewModel) {
|
||||||
if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) {
|
if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) {
|
||||||
|
|
@ -34,7 +34,6 @@ class CreditEditItemsScreen extends StatelessWidget {
|
||||||
viewModel: viewModel,
|
viewModel: viewModel,
|
||||||
entityViewModel: this.viewModel,
|
entityViewModel: this.viewModel,
|
||||||
isTasks: isTasks,
|
isTasks: isTasks,
|
||||||
onChanged: onChanged,
|
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return InvoiceEditItems(
|
return InvoiceEditItems(
|
||||||
|
|
@ -72,15 +71,19 @@ class CreditEditItemsVM extends EntityEditItemsVM {
|
||||||
onMovedInvoiceItem: onMovedInvoiceItem,
|
onMovedInvoiceItem: onMovedInvoiceItem,
|
||||||
);
|
);
|
||||||
|
|
||||||
factory CreditEditItemsVM.fromStore(Store<AppState> store, bool isTasks) {
|
factory CreditEditItemsVM.fromStore(
|
||||||
|
Store<AppState> store, Function onChanged, bool isTasks) {
|
||||||
return CreditEditItemsVM(
|
return CreditEditItemsVM(
|
||||||
state: store.state,
|
state: store.state,
|
||||||
company: store.state.company,
|
company: store.state.company,
|
||||||
invoice: store.state.creditUIState.editing,
|
invoice: store.state.creditUIState.editing,
|
||||||
invoiceItemIndex: store.state.creditUIState.editingItemIndex,
|
invoiceItemIndex: store.state.creditUIState.editingItemIndex,
|
||||||
onRemoveInvoiceItemPressed: (index) =>
|
onRemoveInvoiceItemPressed: (index) {
|
||||||
store.dispatch(DeleteCreditItem(index)),
|
store.dispatch(DeleteCreditItem(index));
|
||||||
onDoneInvoiceItemPressed: () => store.dispatch(EditCreditItem()),
|
},
|
||||||
|
onDoneInvoiceItemPressed: () {
|
||||||
|
store.dispatch(EditCreditItem());
|
||||||
|
},
|
||||||
onChangedInvoiceItem: (creditItem, index) {
|
onChangedInvoiceItem: (creditItem, index) {
|
||||||
final credit = store.state.creditUIState.editing;
|
final credit = store.state.creditUIState.editing;
|
||||||
if (index == credit.lineItems.length) {
|
if (index == credit.lineItems.length) {
|
||||||
|
|
@ -94,9 +97,11 @@ class CreditEditItemsVM extends EntityEditItemsVM {
|
||||||
.dispatch(UpdateCreditItem(creditItem: creditItem, index: index));
|
.dispatch(UpdateCreditItem(creditItem: creditItem, index: index));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onMovedInvoiceItem: (oldIndex, newIndex) => store.dispatch(
|
onMovedInvoiceItem: (oldIndex, newIndex) {
|
||||||
|
store.dispatch(
|
||||||
MoveCreditItem(oldIndex: oldIndex, newIndex: newIndex),
|
MoveCreditItem(oldIndex: oldIndex, newIndex: newIndex),
|
||||||
),
|
);
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,13 +23,11 @@ class InvoiceEditItemsDesktop extends StatefulWidget {
|
||||||
@required this.viewModel,
|
@required this.viewModel,
|
||||||
@required this.entityViewModel,
|
@required this.entityViewModel,
|
||||||
@required this.isTasks,
|
@required this.isTasks,
|
||||||
@required this.onChanged,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
final EntityEditItemsVM viewModel;
|
final EntityEditItemsVM viewModel;
|
||||||
final EntityEditVM entityViewModel;
|
final EntityEditVM entityViewModel;
|
||||||
final bool isTasks;
|
final bool isTasks;
|
||||||
final Function onChanged;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_InvoiceEditItemsDesktopState createState() =>
|
_InvoiceEditItemsDesktopState createState() =>
|
||||||
|
|
@ -57,16 +55,13 @@ class _InvoiceEditItemsDesktopState extends State<InvoiceEditItemsDesktop> {
|
||||||
|
|
||||||
if (index == lineItems.length) {
|
if (index == lineItems.length) {
|
||||||
viewModel.onChangedInvoiceItem(lineItem, index);
|
viewModel.onChangedInvoiceItem(lineItem, index);
|
||||||
widget.onChanged();
|
|
||||||
} else if (lineItem != lineItems[index]) {
|
} else if (lineItem != lineItems[index]) {
|
||||||
if (debounce) {
|
if (debounce) {
|
||||||
_debouncer.run(() {
|
_debouncer.run(() {
|
||||||
viewModel.onChangedInvoiceItem(lineItem, index);
|
viewModel.onChangedInvoiceItem(lineItem, index);
|
||||||
widget.onChanged();
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
viewModel.onChangedInvoiceItem(lineItem, index);
|
viewModel.onChangedInvoiceItem(lineItem, index);
|
||||||
widget.onChanged();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ class InvoiceEditItemsScreen extends StatelessWidget {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return StoreConnector<AppState, InvoiceEditItemsVM>(
|
return StoreConnector<AppState, InvoiceEditItemsVM>(
|
||||||
converter: (Store<AppState> store) {
|
converter: (Store<AppState> store) {
|
||||||
return InvoiceEditItemsVM.fromStore(store, isTasks);
|
return InvoiceEditItemsVM.fromStore(store, onChanged, isTasks);
|
||||||
},
|
},
|
||||||
builder: (context, viewModel) {
|
builder: (context, viewModel) {
|
||||||
if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) {
|
if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) {
|
||||||
|
|
@ -33,7 +33,6 @@ class InvoiceEditItemsScreen extends StatelessWidget {
|
||||||
viewModel: viewModel,
|
viewModel: viewModel,
|
||||||
entityViewModel: this.viewModel,
|
entityViewModel: this.viewModel,
|
||||||
isTasks: isTasks,
|
isTasks: isTasks,
|
||||||
onChanged: onChanged,
|
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return InvoiceEditItems(
|
return InvoiceEditItems(
|
||||||
|
|
@ -97,17 +96,25 @@ class InvoiceEditItemsVM extends EntityEditItemsVM {
|
||||||
onMovedInvoiceItem: onMovedInvoiceItem,
|
onMovedInvoiceItem: onMovedInvoiceItem,
|
||||||
);
|
);
|
||||||
|
|
||||||
factory InvoiceEditItemsVM.fromStore(Store<AppState> store, bool isTasks) {
|
factory InvoiceEditItemsVM.fromStore(
|
||||||
|
Store<AppState> store,
|
||||||
|
Function onChanged,
|
||||||
|
bool isTasks,
|
||||||
|
) {
|
||||||
return InvoiceEditItemsVM(
|
return InvoiceEditItemsVM(
|
||||||
state: store.state,
|
state: store.state,
|
||||||
company: store.state.company,
|
company: store.state.company,
|
||||||
invoice: store.state.invoiceUIState.editing,
|
invoice: store.state.invoiceUIState.editing,
|
||||||
invoiceItemIndex: store.state.invoiceUIState.editingItemIndex,
|
invoiceItemIndex: store.state.invoiceUIState.editingItemIndex,
|
||||||
addLineItem: () =>
|
addLineItem: () {
|
||||||
store.dispatch(AddInvoiceItem(invoiceItem: InvoiceItemEntity())),
|
store.dispatch(AddInvoiceItem(invoiceItem: InvoiceItemEntity()));
|
||||||
|
onChanged();
|
||||||
|
},
|
||||||
deleteLineItem: null,
|
deleteLineItem: null,
|
||||||
onRemoveInvoiceItemPressed: (index) =>
|
onRemoveInvoiceItemPressed: (index) {
|
||||||
store.dispatch(DeleteInvoiceItem(index)),
|
store.dispatch(DeleteInvoiceItem(index));
|
||||||
|
onChanged();
|
||||||
|
},
|
||||||
clearSelectedInvoiceItem: () => store.dispatch(EditInvoiceItem()),
|
clearSelectedInvoiceItem: () => store.dispatch(EditInvoiceItem()),
|
||||||
onChangedInvoiceItem: (invoiceItem, index) {
|
onChangedInvoiceItem: (invoiceItem, index) {
|
||||||
final invoice = store.state.invoiceUIState.editing;
|
final invoice = store.state.invoiceUIState.editing;
|
||||||
|
|
@ -121,10 +128,14 @@ class InvoiceEditItemsVM extends EntityEditItemsVM {
|
||||||
store.dispatch(
|
store.dispatch(
|
||||||
UpdateInvoiceItem(invoiceItem: invoiceItem, index: index));
|
UpdateInvoiceItem(invoiceItem: invoiceItem, index: index));
|
||||||
}
|
}
|
||||||
|
onChanged();
|
||||||
},
|
},
|
||||||
onMovedInvoiceItem: (oldIndex, newIndex) => store.dispatch(
|
onMovedInvoiceItem: (oldIndex, newIndex) {
|
||||||
|
store.dispatch(
|
||||||
MoveInvoiceItem(oldIndex: oldIndex, newIndex: newIndex),
|
MoveInvoiceItem(oldIndex: oldIndex, newIndex: newIndex),
|
||||||
),
|
);
|
||||||
|
onChanged();
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ class QuoteEditItemsScreen extends StatelessWidget {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return StoreConnector<AppState, QuoteEditItemsVM>(
|
return StoreConnector<AppState, QuoteEditItemsVM>(
|
||||||
converter: (Store<AppState> store) {
|
converter: (Store<AppState> store) {
|
||||||
return QuoteEditItemsVM.fromStore(store);
|
return QuoteEditItemsVM.fromStore(store, onChanged);
|
||||||
},
|
},
|
||||||
builder: (context, viewModel) {
|
builder: (context, viewModel) {
|
||||||
if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) {
|
if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) {
|
||||||
|
|
@ -32,7 +32,6 @@ class QuoteEditItemsScreen extends StatelessWidget {
|
||||||
viewModel: viewModel,
|
viewModel: viewModel,
|
||||||
entityViewModel: this.viewModel,
|
entityViewModel: this.viewModel,
|
||||||
isTasks: false,
|
isTasks: false,
|
||||||
onChanged: onChanged,
|
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return InvoiceEditItems(
|
return InvoiceEditItems(
|
||||||
|
|
@ -70,15 +69,19 @@ class QuoteEditItemsVM extends EntityEditItemsVM {
|
||||||
onMovedInvoiceItem: onMovedInvoiceItem,
|
onMovedInvoiceItem: onMovedInvoiceItem,
|
||||||
);
|
);
|
||||||
|
|
||||||
factory QuoteEditItemsVM.fromStore(Store<AppState> store) {
|
factory QuoteEditItemsVM.fromStore(
|
||||||
|
Store<AppState> store, Function onChanged) {
|
||||||
return QuoteEditItemsVM(
|
return QuoteEditItemsVM(
|
||||||
state: store.state,
|
state: store.state,
|
||||||
company: store.state.company,
|
company: store.state.company,
|
||||||
invoice: store.state.quoteUIState.editing,
|
invoice: store.state.quoteUIState.editing,
|
||||||
invoiceItemIndex: store.state.quoteUIState.editingItemIndex,
|
invoiceItemIndex: store.state.quoteUIState.editingItemIndex,
|
||||||
onRemoveInvoiceItemPressed: (index) =>
|
onRemoveInvoiceItemPressed: (index) {
|
||||||
store.dispatch(DeleteQuoteItem(index)),
|
store.dispatch(DeleteQuoteItem(index));
|
||||||
onDoneInvoiceItemPressed: () => store.dispatch(EditQuoteItem()),
|
},
|
||||||
|
onDoneInvoiceItemPressed: () {
|
||||||
|
store.dispatch(EditQuoteItem());
|
||||||
|
},
|
||||||
onChangedInvoiceItem: (quoteItem, index) {
|
onChangedInvoiceItem: (quoteItem, index) {
|
||||||
final quote = store.state.quoteUIState.editing;
|
final quote = store.state.quoteUIState.editing;
|
||||||
if (index == quote.lineItems.length) {
|
if (index == quote.lineItems.length) {
|
||||||
|
|
@ -87,9 +90,11 @@ class QuoteEditItemsVM extends EntityEditItemsVM {
|
||||||
store.dispatch(UpdateQuoteItem(quoteItem: quoteItem, index: index));
|
store.dispatch(UpdateQuoteItem(quoteItem: quoteItem, index: index));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onMovedInvoiceItem: (oldIndex, newIndex) => store.dispatch(
|
onMovedInvoiceItem: (oldIndex, newIndex) {
|
||||||
|
store.dispatch(
|
||||||
MoveQuoteItem(oldIndex: oldIndex, newIndex: newIndex),
|
MoveQuoteItem(oldIndex: oldIndex, newIndex: newIndex),
|
||||||
),
|
);
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ class RecurringInvoiceEditItemsScreen extends StatelessWidget {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return StoreConnector<AppState, RecurringInvoiceEditItemsVM>(
|
return StoreConnector<AppState, RecurringInvoiceEditItemsVM>(
|
||||||
converter: (Store<AppState> store) {
|
converter: (Store<AppState> store) {
|
||||||
return RecurringInvoiceEditItemsVM.fromStore(store, isTasks);
|
return RecurringInvoiceEditItemsVM.fromStore(store, onChanged, isTasks);
|
||||||
},
|
},
|
||||||
builder: (context, viewModel) {
|
builder: (context, viewModel) {
|
||||||
if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) {
|
if (viewModel.state.prefState.isEditorFullScreen(EntityType.invoice)) {
|
||||||
|
|
@ -34,7 +34,6 @@ class RecurringInvoiceEditItemsScreen extends StatelessWidget {
|
||||||
viewModel: viewModel,
|
viewModel: viewModel,
|
||||||
entityViewModel: this.viewModel,
|
entityViewModel: this.viewModel,
|
||||||
isTasks: isTasks,
|
isTasks: isTasks,
|
||||||
onChanged: onChanged,
|
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return InvoiceEditItems(
|
return InvoiceEditItems(
|
||||||
|
|
@ -73,16 +72,19 @@ class RecurringInvoiceEditItemsVM extends EntityEditItemsVM {
|
||||||
);
|
);
|
||||||
|
|
||||||
factory RecurringInvoiceEditItemsVM.fromStore(
|
factory RecurringInvoiceEditItemsVM.fromStore(
|
||||||
Store<AppState> store, bool isTasks) {
|
Store<AppState> store, Function onChanged, bool isTasks) {
|
||||||
return RecurringInvoiceEditItemsVM(
|
return RecurringInvoiceEditItemsVM(
|
||||||
state: store.state,
|
state: store.state,
|
||||||
company: store.state.company,
|
company: store.state.company,
|
||||||
invoice: store.state.recurringInvoiceUIState.editing,
|
invoice: store.state.recurringInvoiceUIState.editing,
|
||||||
invoiceItemIndex: store.state.recurringInvoiceUIState.editingItemIndex,
|
invoiceItemIndex: store.state.recurringInvoiceUIState.editingItemIndex,
|
||||||
onRemoveInvoiceItemPressed: (index) =>
|
onRemoveInvoiceItemPressed: (index) {
|
||||||
store.dispatch(DeleteRecurringInvoiceItem(index)),
|
store.dispatch(DeleteRecurringInvoiceItem(index));
|
||||||
onDoneInvoiceItemPressed: () =>
|
onChanged();
|
||||||
store.dispatch(EditRecurringInvoiceItem()),
|
},
|
||||||
|
onDoneInvoiceItemPressed: () {
|
||||||
|
store.dispatch(EditRecurringInvoiceItem());
|
||||||
|
},
|
||||||
onChangedInvoiceItem: (item, index) {
|
onChangedInvoiceItem: (item, index) {
|
||||||
final invoice = store.state.recurringInvoiceUIState.editing;
|
final invoice = store.state.recurringInvoiceUIState.editing;
|
||||||
if (index == invoice.lineItems.length) {
|
if (index == invoice.lineItems.length) {
|
||||||
|
|
@ -94,10 +96,14 @@ class RecurringInvoiceEditItemsVM extends EntityEditItemsVM {
|
||||||
} else {
|
} else {
|
||||||
store.dispatch(UpdateRecurringInvoiceItem(item: item, index: index));
|
store.dispatch(UpdateRecurringInvoiceItem(item: item, index: index));
|
||||||
}
|
}
|
||||||
|
onChanged();
|
||||||
},
|
},
|
||||||
onMovedInvoiceItem: (oldIndex, newIndex) => store.dispatch(
|
onMovedInvoiceItem: (oldIndex, newIndex) {
|
||||||
|
store.dispatch(
|
||||||
MoveRecurringInvoiceItem(oldIndex: oldIndex, newIndex: newIndex),
|
MoveRecurringInvoiceItem(oldIndex: oldIndex, newIndex: newIndex),
|
||||||
),
|
);
|
||||||
|
onChanged();
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue