wait for init
This commit is contained in:
parent
6c0c66cae5
commit
672e187814
3 changed files with 20 additions and 1 deletions
|
|
@ -5,6 +5,7 @@ import "package:fast_immutable_collections/fast_immutable_collections.dart";
|
||||||
import "package:ffi/ffi.dart";
|
import "package:ffi/ffi.dart";
|
||||||
import "package:flutter/foundation.dart";
|
import "package:flutter/foundation.dart";
|
||||||
import "package:nexus/controllers/client_state_controller.dart";
|
import "package:nexus/controllers/client_state_controller.dart";
|
||||||
|
import "package:nexus/controllers/init_complete_controller.dart";
|
||||||
import "package:nexus/controllers/rooms_controller.dart";
|
import "package:nexus/controllers/rooms_controller.dart";
|
||||||
import "package:nexus/controllers/space_edges_controller.dart";
|
import "package:nexus/controllers/space_edges_controller.dart";
|
||||||
import "package:nexus/controllers/sync_status_controller.dart";
|
import "package:nexus/controllers/sync_status_controller.dart";
|
||||||
|
|
@ -58,6 +59,9 @@ class ClientController extends AsyncNotifier<int> {
|
||||||
.watch(SyncStatusController.provider.notifier)
|
.watch(SyncStatusController.provider.notifier)
|
||||||
.set(SyncStatus.fromJson(decodedMuksEvent));
|
.set(SyncStatus.fromJson(decodedMuksEvent));
|
||||||
break;
|
break;
|
||||||
|
case "init_complete":
|
||||||
|
ref.watch(InitCompleteController.provider.notifier).complete();
|
||||||
|
break;
|
||||||
case "sync_complete":
|
case "sync_complete":
|
||||||
final syncData = SyncData.fromJson(decodedMuksEvent);
|
final syncData = SyncData.fromJson(decodedMuksEvent);
|
||||||
final roomProvider = RoomsController.provider;
|
final roomProvider = RoomsController.provider;
|
||||||
|
|
|
||||||
11
lib/controllers/init_complete_controller.dart
Normal file
11
lib/controllers/init_complete_controller.dart
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||||
|
|
||||||
|
class InitCompleteController extends Notifier<bool> {
|
||||||
|
@override
|
||||||
|
bool build() => false;
|
||||||
|
void complete() => state = true;
|
||||||
|
|
||||||
|
static final provider = NotifierProvider<InitCompleteController, bool>(
|
||||||
|
InitCompleteController.new,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
@ -6,6 +6,7 @@ import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||||
import "package:nexus/controllers/client_controller.dart";
|
import "package:nexus/controllers/client_controller.dart";
|
||||||
import "package:nexus/controllers/client_state_controller.dart";
|
import "package:nexus/controllers/client_state_controller.dart";
|
||||||
import "package:nexus/controllers/header_controller.dart";
|
import "package:nexus/controllers/header_controller.dart";
|
||||||
|
import "package:nexus/controllers/init_complete_controller.dart";
|
||||||
import "package:nexus/controllers/multi_provider_controller.dart";
|
import "package:nexus/controllers/multi_provider_controller.dart";
|
||||||
import "package:nexus/controllers/shared_prefs_controller.dart";
|
import "package:nexus/controllers/shared_prefs_controller.dart";
|
||||||
import "package:nexus/helpers/extensions/better_when.dart";
|
import "package:nexus/helpers/extensions/better_when.dart";
|
||||||
|
|
@ -122,6 +123,7 @@ class App extends StatelessWidget {
|
||||||
final clientState = ref.watch(
|
final clientState = ref.watch(
|
||||||
ClientStateController.provider,
|
ClientStateController.provider,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (clientState == null || !clientState.isInitialized) {
|
if (clientState == null || !clientState.isInitialized) {
|
||||||
return Loading();
|
return Loading();
|
||||||
}
|
}
|
||||||
|
|
@ -131,7 +133,9 @@ class App extends StatelessWidget {
|
||||||
} else if (!clientState.isVerified) {
|
} else if (!clientState.isVerified) {
|
||||||
return VerifyPage();
|
return VerifyPage();
|
||||||
} else {
|
} else {
|
||||||
return ChatPage();
|
return ref.watch(InitCompleteController.provider)
|
||||||
|
? ChatPage()
|
||||||
|
: Loading();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue