anchor.diff:              default:
                 message = 'No YubiKey present';
             }
  -          return ListTile(
  -            leading: DeviceAvatar.deviceNode(
  +          return Column(
  +            children: [
  +              DeviceAvatar.deviceNode(
  +                node,
  +                selected: true,
  +                radius: 64,
  +              ),
  +              ListTile(
  +                title: Center(child: Text(message)),
  +                subtitle: Center(child: Text(node.name)),
  +              ),
  +            ],
  +          );
  +        },
  +        loading: () => Column(
  +          children: [
  +            DeviceAvatar.deviceNode(
                 node,
                 selected: true,
  -            ),
  -            title: Text(message),
  -            subtitle: Text(node.name),
  -            onTap: onTap,
  -          );
  -        },
  -        loading: () => ListTile(
  -          leading: DeviceAvatar.deviceNode(
  -            node,
  -            selected: true,
  -          ),
  -          title: const Text('No YubiKey present'),
  -          subtitle: Text(node.name),
  -          onTap: onTap,
  +              radius: 64,
  +            ),
  +            ListTile(
  +              title: const Center(child: Text('No YubiKey present')),
  +              subtitle: Center(child: Text(node.name)),
  +            ),
  +          ],
           ),
         );
   }
   
  -class _DeviceRow extends StatelessWidget {
  +class _DeviceRow extends ConsumerWidget {
     final DeviceNode node;
     final DeviceInfo? info;
  -  final Function() onTap;
   
     const _DeviceRow(
       this.node, {
  -    required this.info,
  -    required this.onTap,
  +    this.info,
     });
   
     @override
  -  Widget build(BuildContext context) {
  +  Widget build(BuildContext context, WidgetRef ref) {
       return ListTile(
         leading: Padding(
           padding: const EdgeInsets.symmetric(horizontal: 4),
  
positive.code: 
  import 'package:flutter/material.dart';
  import 'package:flutter_riverpod/flutter_riverpod.dart';
  
  import '../../management/models.dart';
  import '../models.dart';
  import '../state.dart';
  
negative.code:           title: const Text('USB'),
            subtitle: const Text('No YubiKey present'),
            onTap: () {
              //Navigator.of(context).pop();
              ref.read(currentDeviceProvider.notifier).setCurrentDevice(null);
            },
          ),
        ...devices.map(
          (e) => e.map(
            usbYubiKey: (node) => _DeviceRow(node, info: node.info),
            nfcReader: (node) => _NfcDeviceRow(node),
          ),
        ),
      ];
  
      return GestureDetector(
        onSecondaryTapDown: hidden.isEmpty
            ? null
            : (details) {
                showMenu(
                  context: context,
                  position: RelativeRect.fromLTRB(
                    details.globalPosition.dx,
                    details.globalPosition.dy,
                    details.globalPosition.dx,
                    0,
                  ),
                  items: [
                    PopupMenuItem(
                      onTap: () {
                        ref.read(_hiddenDevicesProvider.notifier).showAll();
                      },
                      child: const ListTile(
                        title: Text('Show hidden devices'),
                        dense: true,
                        contentPadding: EdgeInsets.zero,
                      ),
                    ),
                  ],
                );
              },
        child: SimpleDialog(
          children: [
            hero,
            if (others.isNotEmpty)
              const Padding(
                padding: EdgeInsets.symmetric(horizontal: 24),
                child: Divider(),
              ),
            ...others,
          ],
        ),
      );
    }
  }
  