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:flutter/foundation.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/space_edges_controller.dart";
|
||||
import "package:nexus/controllers/sync_status_controller.dart";
|
||||
|
|
@ -58,6 +59,9 @@ class ClientController extends AsyncNotifier<int> {
|
|||
.watch(SyncStatusController.provider.notifier)
|
||||
.set(SyncStatus.fromJson(decodedMuksEvent));
|
||||
break;
|
||||
case "init_complete":
|
||||
ref.watch(InitCompleteController.provider.notifier).complete();
|
||||
break;
|
||||
case "sync_complete":
|
||||
final syncData = SyncData.fromJson(decodedMuksEvent);
|
||||
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_state_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/shared_prefs_controller.dart";
|
||||
import "package:nexus/helpers/extensions/better_when.dart";
|
||||
|
|
@ -122,6 +123,7 @@ class App extends StatelessWidget {
|
|||
final clientState = ref.watch(
|
||||
ClientStateController.provider,
|
||||
);
|
||||
|
||||
if (clientState == null || !clientState.isInitialized) {
|
||||
return Loading();
|
||||
}
|
||||
|
|
@ -131,7 +133,9 @@ class App extends StatelessWidget {
|
|||
} else if (!clientState.isVerified) {
|
||||
return VerifyPage();
|
||||
} else {
|
||||
return ChatPage();
|
||||
return ref.watch(InitCompleteController.provider)
|
||||
? ChatPage()
|
||||
: Loading();
|
||||
}
|
||||
},
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue