working sidebar

This commit is contained in:
Henry Hiles 2026-01-27 14:14:04 +00:00
commit 7b0fea3a07
No known key found for this signature in database
13 changed files with 491 additions and 436 deletions

View file

@ -2,24 +2,23 @@ import "package:collection/collection.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:nexus/controllers/key_controller.dart";
import "package:nexus/controllers/selected_space_controller.dart";
import "package:nexus/models/full_room.dart";
import "package:nexus/models/room.dart";
class SelectedRoomController extends AsyncNotifier<FullRoom?> {
class SelectedRoomController extends Notifier<Room?> {
@override
Future<FullRoom?> build() async {
final space = await ref.watch(SelectedSpaceController.provider.future);
Room? build() {
final space = ref.watch(SelectedSpaceController.provider);
final selectedRoomId = ref.watch(
KeyController.provider(KeyController.roomKey),
);
return space.children.firstWhereOrNull(
(room) => room.roomData.id == selectedRoomId,
(room) => room.metadata?.id == selectedRoomId,
) ??
space.children.firstOrNull;
}
static final provider =
AsyncNotifierProvider<SelectedRoomController, FullRoom?>(
SelectedRoomController.new,
);
static final provider = NotifierProvider<SelectedRoomController, Room?>(
SelectedRoomController.new,
);
}