feat: display room name in sensor detail sheet

This commit is contained in:
2026-05-19 20:24:47 +02:00
parent 05231ee9cf
commit 4877ff9b71
+13 -1
View File
@@ -52,7 +52,7 @@ class _SensorDetailSheetState extends ConsumerState<SensorDetailSheet> {
context: context,
builder: (ctx) => AlertDialog(
title: const Text('Delete sensor?'),
content: const Text('This will unenrol the sensor from the system.'),
content: const Text('This will unenroll the sensor from the system.'),
actions: [
TextButton(
onPressed: () => Navigator.of(ctx).pop(false),
@@ -88,6 +88,7 @@ class _SensorDetailSheetState extends ConsumerState<SensorDetailSheet> {
@override
Widget build(BuildContext context) {
final sensorAsync = ref.watch(sensorProvider(widget.sensorId));
final roomsAsync = ref.watch(roomsProvider);
return sensorAsync.when(
loading: () => const SizedBox(
@@ -102,8 +103,16 @@ class _SensorDetailSheetState extends ConsumerState<SensorDetailSheet> {
// Keep controller in sync when not actively editing.
if (!_editing) _nameCtrl.text = sensor.name ?? '';
final roomName = roomsAsync.whenOrNull(
data: (rooms) => rooms
.where((r) => r.id == sensor.roomId)
.firstOrNull
?.name,
);
return _SheetBody(
sensor: sensor,
roomName: roomName,
editing: _editing,
nameCtrl: _nameCtrl,
onEditToggle: () => setState(() {
@@ -122,6 +131,7 @@ class _SensorDetailSheetState extends ConsumerState<SensorDetailSheet> {
class _SheetBody extends StatelessWidget {
const _SheetBody({
required this.sensor,
required this.roomName,
required this.editing,
required this.nameCtrl,
required this.onEditToggle,
@@ -131,6 +141,7 @@ class _SheetBody extends StatelessWidget {
});
final Sensor sensor;
final String? roomName;
final bool editing;
final TextEditingController nameCtrl;
final VoidCallback onEditToggle;
@@ -192,6 +203,7 @@ class _SheetBody extends StatelessWidget {
),
const SizedBox(height: 16),
_InfoRow(label: 'Device ID', value: sensor.sensorId),
_InfoRow(label: 'Room', value: roomName ?? ''),
_InfoRow(
label: 'Position',
value: sensor.isPlaced