show appbar on verify page
This commit is contained in:
parent
02c79a6d7c
commit
f8d6dcead5
1 changed files with 63 additions and 59 deletions
|
|
@ -2,6 +2,7 @@ import "package:flutter/material.dart";
|
||||||
import "package:flutter_hooks/flutter_hooks.dart";
|
import "package:flutter_hooks/flutter_hooks.dart";
|
||||||
import "package:hooks_riverpod/hooks_riverpod.dart";
|
import "package:hooks_riverpod/hooks_riverpod.dart";
|
||||||
import "package:nexus/controllers/client_controller.dart";
|
import "package:nexus/controllers/client_controller.dart";
|
||||||
|
import "package:nexus/widgets/appbar.dart";
|
||||||
import "package:nexus/widgets/form_text_input.dart";
|
import "package:nexus/widgets/form_text_input.dart";
|
||||||
|
|
||||||
class VerifyPage extends HookConsumerWidget {
|
class VerifyPage extends HookConsumerWidget {
|
||||||
|
|
@ -11,72 +12,75 @@ class VerifyPage extends HookConsumerWidget {
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
final passphraseController = useTextEditingController();
|
final passphraseController = useTextEditingController();
|
||||||
final isVerifying = useState(false);
|
final isVerifying = useState(false);
|
||||||
return AlertDialog(
|
return Scaffold(
|
||||||
title: Text("Verify"),
|
appBar: Appbar(),
|
||||||
content: Column(
|
body: AlertDialog(
|
||||||
mainAxisSize: MainAxisSize.min,
|
title: Text("Verify"),
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
content: Column(
|
||||||
children: [
|
mainAxisSize: MainAxisSize.min,
|
||||||
Text(
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
"Enter your recovery key or passphrase below to unlock encrypted messages.\nYour passphrase is usually not the same as your password.",
|
children: [
|
||||||
),
|
Text(
|
||||||
SizedBox(height: 12),
|
"Enter your recovery key or passphrase below to unlock encrypted messages.\nYour passphrase is usually not the same as your password.",
|
||||||
FormTextInput(
|
),
|
||||||
required: false,
|
SizedBox(height: 12),
|
||||||
autofocus: true,
|
FormTextInput(
|
||||||
capitalize: true,
|
required: false,
|
||||||
controller: passphraseController,
|
autofocus: true,
|
||||||
obscure: true,
|
capitalize: true,
|
||||||
title: "Recovery Key or Passphrase",
|
controller: passphraseController,
|
||||||
|
obscure: true,
|
||||||
|
title: "Recovery Key or Passphrase",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
actions: [
|
||||||
|
TextButton(
|
||||||
|
onPressed: isVerifying.value
|
||||||
|
? null
|
||||||
|
: () async {
|
||||||
|
final scaffoldMessenger = ScaffoldMessenger.of(context);
|
||||||
|
final snackbar = scaffoldMessenger.showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
content: Text(
|
||||||
|
"Attempting to verify with recovery key...",
|
||||||
|
),
|
||||||
|
duration: Duration(days: 999),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
isVerifying.value = true;
|
||||||
|
|
||||||
|
final error = await ref
|
||||||
|
.watch(ClientController.provider.notifier)
|
||||||
|
.verify(passphraseController.text);
|
||||||
|
|
||||||
|
snackbar.close();
|
||||||
|
if (error != null) {
|
||||||
|
isVerifying.value = false;
|
||||||
|
if (context.mounted) {
|
||||||
|
scaffoldMessenger.showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
backgroundColor: Theme.of(
|
||||||
|
context,
|
||||||
|
).colorScheme.errorContainer,
|
||||||
|
content: Text(
|
||||||
|
"Verification failed. Is your passphrase correct?\nError: $error",
|
||||||
|
style: TextStyle(
|
||||||
|
color: Theme.of(
|
||||||
|
context,
|
||||||
|
).colorScheme.onErrorContainer,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
child: Text("Verify"),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
actions: [
|
|
||||||
TextButton(
|
|
||||||
onPressed: isVerifying.value
|
|
||||||
? null
|
|
||||||
: () async {
|
|
||||||
final scaffoldMessenger = ScaffoldMessenger.of(context);
|
|
||||||
final snackbar = scaffoldMessenger.showSnackBar(
|
|
||||||
SnackBar(
|
|
||||||
content: Text(
|
|
||||||
"Attempting to verify with recovery key...",
|
|
||||||
),
|
|
||||||
duration: Duration(days: 999),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
isVerifying.value = true;
|
|
||||||
|
|
||||||
final error = await ref
|
|
||||||
.watch(ClientController.provider.notifier)
|
|
||||||
.verify(passphraseController.text);
|
|
||||||
|
|
||||||
snackbar.close();
|
|
||||||
if (error != null) {
|
|
||||||
isVerifying.value = false;
|
|
||||||
if (context.mounted) {
|
|
||||||
scaffoldMessenger.showSnackBar(
|
|
||||||
SnackBar(
|
|
||||||
backgroundColor: Theme.of(
|
|
||||||
context,
|
|
||||||
).colorScheme.errorContainer,
|
|
||||||
content: Text(
|
|
||||||
"Verification failed. Is your passphrase correct?\nError: $error",
|
|
||||||
style: TextStyle(
|
|
||||||
color: Theme.of(
|
|
||||||
context,
|
|
||||||
).colorScheme.onErrorContainer,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
child: Text("Verify"),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue