mirror of
https://github.com/Yubico/yubioath-flutter.git
synced 2024-11-27 14:23:18 +03:00
57 lines
1.8 KiB
Dart
Executable File
57 lines
1.8 KiB
Dart
Executable File
import 'package:flutter/material.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
|
|
import '../state.dart';
|
|
import '../../app/models.dart';
|
|
import '../../app/state.dart';
|
|
|
|
class ResetDialog extends ConsumerWidget {
|
|
final DeviceNode device;
|
|
const ResetDialog(this.device, {Key? key}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context, WidgetRef ref) {
|
|
// If current device changes, we need to pop back to the main Page.
|
|
ref.listen<DeviceNode?>(currentDeviceProvider, (previous, next) {
|
|
Navigator.of(context).pop();
|
|
});
|
|
|
|
return AlertDialog(
|
|
title: const Text('Reset to defaults?'),
|
|
content: Column(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: [
|
|
const Text(
|
|
'Warning! This will irrevocably delete all OATH TOTP/HOTP accounts from your YubiKey.'),
|
|
const Text(''),
|
|
Text(
|
|
'Your OATH credentials, as well as any password set, will be removed from this YubiKey. Make sure to first disable these from their respective web sites to avoid being locked out of your accounts.',
|
|
style: Theme.of(context).textTheme.bodyText1,
|
|
),
|
|
],
|
|
),
|
|
actions: [
|
|
OutlinedButton(
|
|
onPressed: () {
|
|
Navigator.of(context).pop();
|
|
},
|
|
child: const Text('Cancel'),
|
|
),
|
|
ElevatedButton(
|
|
onPressed: () async {
|
|
await ref.read(oathStateProvider(device.path).notifier).reset();
|
|
Navigator.of(context).pop();
|
|
ScaffoldMessenger.of(context).showSnackBar(
|
|
const SnackBar(
|
|
content: Text('OATH application reset'),
|
|
duration: Duration(seconds: 2),
|
|
),
|
|
);
|
|
},
|
|
child: const Text('Reset YubiKey'),
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|