feat: add Floor and Sensor providers
This commit is contained in:
+29
-1
@@ -1,6 +1,8 @@
|
|||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
|
||||||
import 'domain/models/server_config.dart';
|
import 'domain/models/server_config.dart';
|
||||||
|
import 'domain/models/sensor.dart';
|
||||||
|
import 'domain/models/floor.dart';
|
||||||
import 'domain/models/tag.dart';
|
import 'domain/models/tag.dart';
|
||||||
import 'domain/models/particle.dart';
|
import 'domain/models/particle.dart';
|
||||||
import 'domain/models/floor_plan_mode.dart';
|
import 'domain/models/floor_plan_mode.dart';
|
||||||
@@ -104,10 +106,36 @@ final tagRepositoryProvider = Provider<TagRepository>((ref) {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
final floorPlanRepositoryProvider = Provider<FloorPlanRepository>((ref) {
|
final floorRepositoryProvider = Provider<FloorRepository>((ref) {
|
||||||
return PhoenixFloorPlanRepository(client: ref.watch(floorClientProvider));
|
return PhoenixFloorPlanRepository(client: ref.watch(floorClientProvider));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// Floor plan data
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
final floorProvider = FutureProvider.autoDispose<Floor?>((ref) =>
|
||||||
|
ref.watch(floorRepositoryProvider).getFirstFloor());
|
||||||
|
|
||||||
|
final roomsProvider = FutureProvider.autoDispose<List<Room>>((ref) async {
|
||||||
|
final floor = await ref.watch(floorProvider.future);
|
||||||
|
if (floor == null) return [];
|
||||||
|
return ref.watch(floorRepositoryProvider).getRooms(floor.id);
|
||||||
|
});
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// Sensor data
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
final sensorsProvider = FutureProvider.autoDispose<List<Sensor>>((ref) {
|
||||||
|
return ref.watch(sensorRepositoryProvider).getSensors();
|
||||||
|
});
|
||||||
|
|
||||||
|
final sensorProvider =
|
||||||
|
FutureProvider.autoDispose.family<Sensor, int>((ref, id) {
|
||||||
|
return ref.watch(sensorRepositoryProvider).getSensor(id);
|
||||||
|
});
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// Cross-tab UI state
|
// Cross-tab UI state
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user