Merge pull request #853 from cake-tech/CW-339-Advanced-settings-page-crash-on-a-fresh-install

CW-339-Advanced-settings-page-crash-on-a-fresh-install
This commit is contained in:
Serhii 2023-03-31 15:53:45 +03:00 committed by GitHub
commit 9f1325ba0f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 13 deletions

View file

@ -560,8 +560,7 @@ Future setup(
(WalletType? type, _) => NodeCreateOrEditViewModel( (WalletType? type, _) => NodeCreateOrEditViewModel(
_nodeSource, _nodeSource,
type ?? getIt.get<AppStore>().wallet!.type, type ?? getIt.get<AppStore>().wallet!.type,
getIt.get<SettingsStore>(), getIt.get<SettingsStore>()
getIt.get<NodeListViewModel>()
)); ));
getIt.registerFactoryParam<NodeCreateOrEditPage, Node?, bool?>( getIt.registerFactoryParam<NodeCreateOrEditPage, Node?, bool?>(

View file

@ -22,8 +22,8 @@ class NodeForm extends StatelessWidget {
nodeViewModel nodeViewModel
..setAddress((editingNode!.uri.host.toString())) ..setAddress((editingNode!.uri.host.toString()))
..setPort((editingNode!.uri.port.toString())) ..setPort((editingNode!.uri.port.toString()))
..setPassword((editingNode!.password.toString())) ..setPassword((editingNode!.password ?? ''))
..setLogin((editingNode!.login.toString())) ..setLogin((editingNode!.login ?? ''))
..setSSL((editingNode!.isSSL)) ..setSSL((editingNode!.isSSL))
..setTrusted((editingNode!.trusted)); ..setTrusted((editingNode!.trusted));
} }

View file

@ -13,8 +13,7 @@ class NodeCreateOrEditViewModel = NodeCreateOrEditViewModelBase
with _$NodeCreateOrEditViewModel; with _$NodeCreateOrEditViewModel;
abstract class NodeCreateOrEditViewModelBase with Store { abstract class NodeCreateOrEditViewModelBase with Store {
NodeCreateOrEditViewModelBase(this._nodeSource, this._walletType, this._settingsStore, NodeCreateOrEditViewModelBase(this._nodeSource, this._walletType, this._settingsStore)
this.nodeListViewModel)
: state = InitialExecutionState(), : state = InitialExecutionState(),
connectionState = InitialExecutionState(), connectionState = InitialExecutionState(),
useSSL = false, useSSL = false,
@ -68,7 +67,6 @@ abstract class NodeCreateOrEditViewModelBase with Store {
final WalletType _walletType; final WalletType _walletType;
final Box<Node> _nodeSource; final Box<Node> _nodeSource;
final SettingsStore _settingsStore; final SettingsStore _settingsStore;
final NodeListViewModel nodeListViewModel;
@action @action
void reset() { void reset() {
@ -100,16 +98,20 @@ abstract class NodeCreateOrEditViewModelBase with Store {
@action @action
Future<void> save({Node? editingNode, bool saveAsCurrent = false}) async { Future<void> save({Node? editingNode, bool saveAsCurrent = false}) async {
final node = Node(
uri: uri,
type: _walletType,
login: login,
password: password,
useSSL: useSSL,
trusted: trusted);
try { try {
state = IsExecutingState(); state = IsExecutingState();
if (editingNode != null) { if (editingNode != null) {
await nodeListViewModel.delete(editingNode); await _nodeSource.put(editingNode.key, node);
} else {
await _nodeSource.add(node);
} }
final node =
Node(uri: uri, type: _walletType, login: login, password: password,
useSSL: useSSL, trusted: trusted);
await _nodeSource.add(node);
if (saveAsCurrent) { if (saveAsCurrent) {
_settingsStore.nodes[_walletType] = node; _settingsStore.nodes[_walletType] = node;
} }