22 lines
725 B
Dart
22 lines
725 B
Dart
import "package:collection/collection.dart";
|
|
import "package:flutter_riverpod/flutter_riverpod.dart";
|
|
import "package:nexus/controllers/key_controller.dart";
|
|
import "package:nexus/controllers/spaces_controller.dart";
|
|
import "package:nexus/models/space.dart";
|
|
|
|
class SelectedSpaceController extends Notifier<Space> {
|
|
@override
|
|
Space build() {
|
|
final spaces = ref.watch(SpacesController.provider);
|
|
final selectedSpaceId = ref.watch(
|
|
KeyController.provider(KeyController.spaceKey),
|
|
);
|
|
|
|
return spaces.firstWhereOrNull((space) => space.id == selectedSpaceId) ??
|
|
spaces.first;
|
|
}
|
|
|
|
static final provider = NotifierProvider<SelectedSpaceController, Space>(
|
|
SelectedSpaceController.new,
|
|
);
|
|
}
|