KeyEditors: Remove code duplication

This commit is contained in:
Vishesh Handa
2020-02-19 18:06:59 +01:00
parent 844089917a
commit 12e16f83e5

View File

@ -7,31 +7,14 @@ class PublicKeyEditor extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SizedBox(
width: double.infinity,
height: 80.0,
child: Container(
color: Theme.of(context).buttonColor,
child: SingleChildScrollView(
child: Container(
padding: const EdgeInsets.all(8.0),
child: TextFormField(
controller: controller,
textAlign: TextAlign.left,
maxLines: null,
style: Theme.of(context).textTheme.body1,
autovalidate: true,
validator: (String val) {
if (!val.startsWith("ssh-")) {
return "Invalid Public Key";
}
return "";
},
),
),
),
),
);
return KeyEditor(controller, _validator);
}
String _validator(String val) {
if (!val.startsWith("ssh-")) {
return "Invalid Public Key";
}
return "";
}
}
@ -40,6 +23,28 @@ class PrivateKeyEditor extends StatelessWidget {
PrivateKeyEditor(this.controller);
@override
Widget build(BuildContext context) {
return KeyEditor(controller, _validator);
}
String _validator(String val) {
if (!val.startsWith("-----BEGIN RSA PRIVATE KEY-----")) {
return "Invalid Private Key";
}
if (!val.startsWith("-----END RSA PRIVATE KEY-----")) {
return "Invalid Private Key";
}
return "";
}
}
class KeyEditor extends StatelessWidget {
final TextEditingController controller;
final Function validator;
KeyEditor(this.controller, this.validator);
@override
Widget build(BuildContext context) {
return SizedBox(
@ -56,15 +61,7 @@ class PrivateKeyEditor extends StatelessWidget {
maxLines: null,
style: Theme.of(context).textTheme.body1,
autovalidate: true,
validator: (String val) {
if (!val.startsWith("-----BEGIN RSA PRIVATE KEY-----")) {
return "Invalid Private Key";
}
if (!val.startsWith("-----END RSA PRIVATE KEY-----")) {
return "Invalid Private Key";
}
return "";
},
validator: validator,
),
),
),