Null safety

This commit is contained in:
Hillel Coren 2023-10-01 14:05:54 +03:00
parent b72967a3cf
commit 4adf979cb6
5 changed files with 69 additions and 66 deletions

View File

@ -15,18 +15,18 @@ import 'package:invoiceninja_flutter/redux/ui/entity_ui_state.dart';
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
EntityUIState clientUIReducer(ClientUIState state, dynamic action) {
return state.rebuild((b) => b
..listUIState.replace(clientListReducer(state.listUIState, action))
..editing.replace(editingReducer(state.editing, action)!)
..editingContact
.replace(editingContactReducer(state.editingContact, action)!)
..selectedId = selectedIdReducer(state.selectedId, action)
..forceSelected = forceSelectedReducer(state.forceSelected, action)
..tabIndex = tabIndexReducer(state.tabIndex, action)
..saveCompleter = saveCompleterReducer(state.saveCompleter, action)
..cancelCompleter = cancelCompleterReducer(
state.cancelCompleter as Completer<SelectableEntity>?, action)
as Completer<Null>?);
return state.rebuild(
(b) => b
..listUIState.replace(clientListReducer(state.listUIState, action))
..editing.replace(editingReducer(state.editing, action)!)
..editingContact
.replace(editingContactReducer(state.editingContact, action)!)
..selectedId = selectedIdReducer(state.selectedId, action)
..forceSelected = forceSelectedReducer(state.forceSelected, action)
..tabIndex = tabIndexReducer(state.tabIndex, action)
..saveCompleter = saveCompleterReducer(state.saveCompleter, action)
..cancelCompleter = cancelCompleterReducer(state.cancelCompleter, action),
);
}
final forceSelectedReducer = combineReducers<bool?>([
@ -55,9 +55,9 @@ final saveCompleterReducer = combineReducers<Completer<SelectableEntity>?>([
}),
]);
final cancelCompleterReducer = combineReducers<Completer<SelectableEntity>?>([
TypedReducer<Completer<SelectableEntity>?, EditClient>((completer, action) {
return action.cancelCompleter as Completer<SelectableEntity>?;
final cancelCompleterReducer = combineReducers<Completer<Null>?>([
TypedReducer<Completer<Null>?, EditClient>((completer, action) {
return action.cancelCompleter as Completer<Null>?;
}),
]);
@ -137,7 +137,8 @@ final editingReducer = combineReducers<ClientEntity?>([
}),
TypedReducer<ClientEntity?, UpdateContact>((client, action) {
return client!.rebuild((b) => b
..contacts[action.index] = action.contact..isChanged = true);
..contacts[action.index] = action.contact
..isChanged = true);
}),
TypedReducer<ClientEntity?, ViewClient>((client, action) {
return ClientEntity();

View File

@ -15,15 +15,16 @@ import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
EntityUIState expenseCategoryUIReducer(
ExpenseCategoryUIState state, dynamic action) {
return state.rebuild((b) => b
..listUIState.replace(expenseCategoryListReducer(state.listUIState, action))
..editing.replace(editingReducer(state.editing, action)!)
..selectedId = selectedIdReducer(state.selectedId, action)
..forceSelected = forceSelectedReducer(state.forceSelected, action)
..saveCompleter = saveCompleterReducer(state.saveCompleter, action)
..cancelCompleter = cancelCompleterReducer(
state.cancelCompleter as Completer<SelectableEntity>?, action)
as Completer<Null>?);
return state.rebuild(
(b) => b
..listUIState
.replace(expenseCategoryListReducer(state.listUIState, action))
..editing.replace(editingReducer(state.editing, action)!)
..selectedId = selectedIdReducer(state.selectedId, action)
..forceSelected = forceSelectedReducer(state.forceSelected, action)
..saveCompleter = saveCompleterReducer(state.saveCompleter, action)
..cancelCompleter = cancelCompleterReducer(state.cancelCompleter, action),
);
}
final saveCompleterReducer = combineReducers<Completer<SelectableEntity>?>([
@ -33,10 +34,9 @@ final saveCompleterReducer = combineReducers<Completer<SelectableEntity>?>([
}),
]);
final cancelCompleterReducer = combineReducers<Completer<SelectableEntity>?>([
TypedReducer<Completer<SelectableEntity>?, EditExpenseCategory>(
(completer, action) {
return action.cancelCompleter as Completer<SelectableEntity>?;
final cancelCompleterReducer = combineReducers<Completer<Null>?>([
TypedReducer<Completer<Null>?, EditExpenseCategory>((completer, action) {
return action.cancelCompleter as Completer<Null>?;
}),
]);

View File

@ -16,16 +16,16 @@ import 'package:invoiceninja_flutter/redux/ui/entity_ui_state.dart';
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
EntityUIState projectUIReducer(ProjectUIState state, dynamic action) {
return state.rebuild((b) => b
..listUIState.replace(projectListReducer(state.listUIState, action))
..editing.replace(editingReducer(state.editing, action)!)
..selectedId = selectedIdReducer(state.selectedId, action)
..forceSelected = forceSelectedReducer(state.forceSelected, action)
..tabIndex = tabIndexReducer(state.tabIndex, action)
..saveCompleter = saveCompleterReducer(state.saveCompleter, action)
..cancelCompleter = cancelCompleterReducer(
state.cancelCompleter as Completer<SelectableEntity>?, action)
as Completer<Null>?);
return state.rebuild(
(b) => b
..listUIState.replace(projectListReducer(state.listUIState, action))
..editing.replace(editingReducer(state.editing, action)!)
..selectedId = selectedIdReducer(state.selectedId, action)
..forceSelected = forceSelectedReducer(state.forceSelected, action)
..tabIndex = tabIndexReducer(state.tabIndex, action)
..saveCompleter = saveCompleterReducer(state.saveCompleter, action)
..cancelCompleter = cancelCompleterReducer(state.cancelCompleter, action),
);
}
final forceSelectedReducer = combineReducers<bool?>([
@ -54,9 +54,9 @@ final saveCompleterReducer = combineReducers<Completer<SelectableEntity>?>([
}),
]);
final cancelCompleterReducer = combineReducers<Completer<SelectableEntity>?>([
TypedReducer<Completer<SelectableEntity>?, EditProject>((completer, action) {
return action.cancelCompleter as Completer<SelectableEntity>?;
final cancelCompleterReducer = combineReducers<Completer<Null>?>([
TypedReducer<Completer<Null>?, EditProject>((completer, action) {
return action.cancelCompleter as Completer<Null>?;
}),
]);

View File

@ -15,18 +15,18 @@ import 'package:invoiceninja_flutter/redux/vendor/vendor_actions.dart';
import 'package:invoiceninja_flutter/redux/vendor/vendor_state.dart';
EntityUIState vendorUIReducer(VendorUIState state, dynamic action) {
return state.rebuild((b) => b
..listUIState.replace(vendorListReducer(state.listUIState, action))
..editing.replace(editingReducer(state.editing, action)!)
..editingContact
.replace(editingVendorContactReducer(state.editingContact, action)!)
..selectedId = selectedIdReducer(state.selectedId, action)
..forceSelected = forceSelectedReducer(state.forceSelected, action)
..tabIndex = tabIndexReducer(state.tabIndex, action)
..saveCompleter = saveCompleterReducer(state.saveCompleter, action)
..cancelCompleter = cancelCompleterReducer(
state.cancelCompleter as Completer<SelectableEntity>?, action)
as Completer<Null>?);
return state.rebuild(
(b) => b
..listUIState.replace(vendorListReducer(state.listUIState, action))
..editing.replace(editingReducer(state.editing, action)!)
..editingContact
.replace(editingVendorContactReducer(state.editingContact, action)!)
..selectedId = selectedIdReducer(state.selectedId, action)
..forceSelected = forceSelectedReducer(state.forceSelected, action)
..tabIndex = tabIndexReducer(state.tabIndex, action)
..saveCompleter = saveCompleterReducer(state.saveCompleter, action)
..cancelCompleter = cancelCompleterReducer(state.cancelCompleter, action),
);
}
final forceSelectedReducer = combineReducers<bool?>([
@ -55,9 +55,9 @@ final saveCompleterReducer = combineReducers<Completer<SelectableEntity>?>([
}),
]);
final cancelCompleterReducer = combineReducers<Completer<SelectableEntity>?>([
TypedReducer<Completer<SelectableEntity>?, EditVendor>((completer, action) {
return action.cancelCompleter as Completer<SelectableEntity>?;
final cancelCompleterReducer = combineReducers<Completer<Null>?>([
TypedReducer<Completer<Null>?, EditVendor>((completer, action) {
return action.cancelCompleter as Completer<Null>?;
}),
]);
@ -141,7 +141,8 @@ VendorEntity _removeContact(VendorEntity? vendor, DeleteVendorContact action) {
VendorEntity _updateContact(VendorEntity? vendor, UpdateVendorContact action) {
return vendor!.rebuild((b) => b
..contacts[action.index] = action.contact..isChanged = true);
..contacts[action.index] = action.contact
..isChanged = true);
}
final vendorListReducer = combineReducers<ListUIState>([

View File

@ -126,14 +126,15 @@ class InvoiceEditDetailsVM extends EntityEditDetailsVM {
},
onAddClientPressed: (context, completer) {
createEntity(
context: context,
entity: ClientEntity(state: state),
force: true,
completer: completer,
cancelCompleter: Completer<Null>()
..future.then<Null>((_) {
store.dispatch(UpdateCurrentRoute(InvoiceEditScreen.route));
}));
context: context,
entity: ClientEntity(state: state),
force: true,
completer: completer,
cancelCompleter: Completer<Null>()
..future.then<Null>((_) {
store.dispatch(UpdateCurrentRoute(InvoiceEditScreen.route));
}),
);
completer.future.then((SelectableEntity client) {
store.dispatch(UpdateCurrentRoute(InvoiceEditScreen.route));
});