Restructure Action Button Logic

This commit is contained in:
lemoer 2025-06-20 11:20:36 +02:00
parent df687a52a8
commit bae5cc903c

View File

@ -68,8 +68,7 @@ class _MyHomePageState extends State<MyHomePage> {
String _output = ''; String _output = '';
String key = ''; String key = '';
Future<void> _incrementCounter() async { Future<void> doSSH() async {
if (navIndex == 0) {
SSHSocket? socket; SSHSocket? socket;
try { try {
@ -103,7 +102,9 @@ class _MyHomePageState extends State<MyHomePage> {
}); });
return; return;
} }
} else { }
Future<void> generateKey() async {
// Generate a key pair // Generate a key pair
final generatedKeyPair = final generatedKeyPair =
@ -119,7 +120,6 @@ class _MyHomePageState extends State<MyHomePage> {
<String, dynamic>{'text': key}, <String, dynamic>{'text': key},
); );
} }
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -144,14 +144,29 @@ class _MyHomePageState extends State<MyHomePage> {
), ),
); );
final actionButtonMain = FloatingActionButton(
onPressed: doSSH,
tooltip: 'Do SSH',
child: const Icon(Icons.computer),
);
final actionButtonInfo = FloatingActionButton(
onPressed: generateKey,
tooltip: 'Regenerate Key',
child: const Icon(Icons.refresh),
);
var bodyComponent = bodyComponentMain; var bodyComponent = bodyComponentMain;
var actionButton = actionButtonMain;
if (navIndex == 0) { if (navIndex == 0) {
// Main page // Main page
bodyComponent = bodyComponentMain; bodyComponent = bodyComponentMain;
actionButton = actionButtonMain;
} else if (navIndex == 1) { } else if (navIndex == 1) {
// Info page // Info page
bodyComponent = bodyComponentInfo; bodyComponent = bodyComponentInfo;
actionButton = actionButtonInfo;
} else { } else {
throw Exception('Unknown navIndex: $navIndex'); throw Exception('Unknown navIndex: $navIndex');
} }
@ -159,11 +174,7 @@ class _MyHomePageState extends State<MyHomePage> {
return Scaffold( return Scaffold(
appBar: AppBar(backgroundColor: Colors.amber, title: Text(widget.title)), appBar: AppBar(backgroundColor: Colors.amber, title: Text(widget.title)),
body: bodyComponent, body: bodyComponent,
floatingActionButton: FloatingActionButton( floatingActionButton: actionButton,
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
),
drawer: Drawer( drawer: Drawer(
child: ListView( child: ListView(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,