feat: display room name in sensor detail sheet
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user