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, context: context,
builder: (ctx) => AlertDialog( builder: (ctx) => AlertDialog(
title: const Text('Delete sensor?'), 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: [ actions: [
TextButton( TextButton(
onPressed: () => Navigator.of(ctx).pop(false), onPressed: () => Navigator.of(ctx).pop(false),
@@ -88,6 +88,7 @@ class _SensorDetailSheetState extends ConsumerState<SensorDetailSheet> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final sensorAsync = ref.watch(sensorProvider(widget.sensorId)); final sensorAsync = ref.watch(sensorProvider(widget.sensorId));
final roomsAsync = ref.watch(roomsProvider);
return sensorAsync.when( return sensorAsync.when(
loading: () => const SizedBox( loading: () => const SizedBox(
@@ -102,8 +103,16 @@ class _SensorDetailSheetState extends ConsumerState<SensorDetailSheet> {
// Keep controller in sync when not actively editing. // Keep controller in sync when not actively editing.
if (!_editing) _nameCtrl.text = sensor.name ?? ''; if (!_editing) _nameCtrl.text = sensor.name ?? '';
final roomName = roomsAsync.whenOrNull(
data: (rooms) => rooms
.where((r) => r.id == sensor.roomId)
.firstOrNull
?.name,
);
return _SheetBody( return _SheetBody(
sensor: sensor, sensor: sensor,
roomName: roomName,
editing: _editing, editing: _editing,
nameCtrl: _nameCtrl, nameCtrl: _nameCtrl,
onEditToggle: () => setState(() { onEditToggle: () => setState(() {
@@ -122,6 +131,7 @@ class _SensorDetailSheetState extends ConsumerState<SensorDetailSheet> {
class _SheetBody extends StatelessWidget { class _SheetBody extends StatelessWidget {
const _SheetBody({ const _SheetBody({
required this.sensor, required this.sensor,
required this.roomName,
required this.editing, required this.editing,
required this.nameCtrl, required this.nameCtrl,
required this.onEditToggle, required this.onEditToggle,
@@ -131,6 +141,7 @@ class _SheetBody extends StatelessWidget {
}); });
final Sensor sensor; final Sensor sensor;
final String? roomName;
final bool editing; final bool editing;
final TextEditingController nameCtrl; final TextEditingController nameCtrl;
final VoidCallback onEditToggle; final VoidCallback onEditToggle;
@@ -192,6 +203,7 @@ class _SheetBody extends StatelessWidget {
), ),
const SizedBox(height: 16), const SizedBox(height: 16),
_InfoRow(label: 'Device ID', value: sensor.sensorId), _InfoRow(label: 'Device ID', value: sensor.sensorId),
_InfoRow(label: 'Room', value: roomName ?? ''),
_InfoRow( _InfoRow(
label: 'Position', label: 'Position',
value: sensor.isPlaced value: sensor.isPlaced