diff --git a/lib/pages/profile_screen/profile_screen.dart b/lib/pages/profile_screen/profile_screen.dart index 9a57b99..ebc7edb 100644 --- a/lib/pages/profile_screen/profile_screen.dart +++ b/lib/pages/profile_screen/profile_screen.dart @@ -126,7 +126,7 @@ class ProfileScreenState extends State { }); } - void keysExistDialog(String npubEncode, String nsecEncode) async { + void _keysExistDialog(String npubEncode, String nsecEncode) async { await showDialog( context: context, builder: ((context) { @@ -145,32 +145,127 @@ class ProfileScreenState extends State { privateKeyInput.text = Keys.nsecKey; publicKeyInput.text = Keys.npubKey; - return ListView( - children: [ - const SizedBox( - height: 60, - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0), - child: UserInfo(), - ), - const SizedBox( - height: 40, - ), - FormKeys(), - SizedBox(height: 20), - Padding( - padding: const EdgeInsets.all(16.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, + return Padding( + padding: const EdgeInsets.all(15.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + const SizedBox( + height: 60, + ), + UserInfo(), + const SizedBox( + height: 40, + ), + Row( children: [ + Text( + "Public Key", + textAlign: TextAlign.start, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.grey[700], + ), + ), + ], + ), + const SizedBox(height: 12), + publicKeyInput.text.isNotEmpty + ? SelectableText( + publicKeyInput.text, + style: TextStyle( + fontSize: 16, + color: Colors.grey[800], + ), + ) + : Text( + "Public Key empty", + textAlign: TextAlign.left, + ), + const SizedBox( + height: 12, + ), + Row( + children: [ + Text( + "Private Key", + textAlign: TextAlign.left, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.grey[700], + ), + ), + ], + ), + const SizedBox(height: 12), + privateKeyInput.text.isNotEmpty + ? SelectableText( + privateKeyInput.text, + style: TextStyle( + fontSize: 16, + color: Colors.grey[800], + ), + ) + : Text( + "Private Key empty", + textAlign: TextAlign.left, + ), + const SizedBox( + height: 20, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Keys.keysExist + ? Row( + children: [ + ElevatedButton( + style: ButtonStyle( + backgroundColor: + MaterialStateProperty.all(Colors.grey[500]), + ), + onPressed: () { + showDialog( + context: context, + builder: (context) => DeleteKeysDialog( + onNoPressed: () { + Navigator.pop(context); + }, + onYesPressed: () { + final currentContext = context; + _deleteKeysStorage().then( + (_) { + if (!Keys.keysExist) { + showFloatingFlushBar( + type: FlushBarType.warning, + message: "Keys deleted!", + context: context, + ); + } + }, + ); + Navigator.pop(context); + }, + ), + ); + }, + child: Text( + "Delete", + ), + ), + ], + ) + : Container(), Keys.keysExist ? ElevatedButton( style: ButtonStyle( - backgroundColor: MaterialStateProperty.all( - AppColors.mainDarkBlue)), + backgroundColor: + MaterialStateProperty.all(AppColors.background), + ), onPressed: () { - keysExistDialog( + _keysExistDialog( Nostr.instance.keysService .encodePublicKeyToNpub(Keys.publicKey), Nostr.instance.keysService @@ -183,8 +278,9 @@ class ProfileScreenState extends State { ) : ElevatedButton( style: ButtonStyle( - backgroundColor: - MaterialStateProperty.all(AppColors.background)), + backgroundColor: + MaterialStateProperty.all(AppColors.background), + ), onPressed: () { final currentContext = context; generateNewKeys().then( @@ -202,86 +298,13 @@ class ProfileScreenState extends State { }, ); }, - child: Text( + child: const Text( "Generate Keys", ), ), - Keys.keysExist - ? Row( - children: [ - IconButton( - onPressed: () { - showDialog( - context: context, - builder: (context) => DeleteKeysDialog( - onNoPressed: () { - Navigator.pop(context); - }, - onYesPressed: () { - final currentContext = context; - _deleteKeysStorage().then((_) { - if (!Keys.keysExist) { - showFloatingFlushBar( - type: FlushBarType.warning, - message: "Keys deleted!", - context: context, - ); - } - }); - Navigator.pop(context); - }, - ), - ); - }, - icon: const Icon(Icons.delete)), - ], - ) - : Container(), ], ), - ) - ], - ); - } - - Form FormKeys() { - return Form( - child: Padding( - padding: const EdgeInsets.all(16.0), - child: Column( - children: [ - TextFormField( - controller: privateKeyInput, - // _toHex ? widget.hexPriv : widget.nsecEncoded, - - decoration: const InputDecoration( - labelText: 'Private Key', - border: OutlineInputBorder(), - ), - maxLength: 64, - ), - const SizedBox( - height: 20, - ), - TextFormField( - controller: publicKeyInput, - // _toHex ? widget.hexPub : widget.npubEncoded, - decoration: const InputDecoration( - labelText: 'Public Key', - border: OutlineInputBorder(), - ), - ), - const SizedBox( - height: 40, - ), - TextFormField( - decoration: const InputDecoration( - labelText: 'Relay', - border: OutlineInputBorder(), - ), - ), - ], - ), + ], ), ); }