Initial commit: Accessible SSH Terminal
This commit is contained in:
71
lib/ui/views/tablet_screen.dart
Normal file
71
lib/ui/views/tablet_screen.dart
Normal file
@@ -0,0 +1,71 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:accessible_terminal/state/terminal_provider.dart';
|
||||
import 'package:accessible_terminal/ui/views/connection_view.dart';
|
||||
import 'package:accessible_terminal/ui/views/terminal_view.dart';
|
||||
|
||||
class TabletScreen extends ConsumerStatefulWidget {
|
||||
const TabletScreen({super.key});
|
||||
|
||||
@override
|
||||
ConsumerState<TabletScreen> createState() => _TabletScreenState();
|
||||
}
|
||||
|
||||
class _TabletScreenState extends ConsumerState<TabletScreen> {
|
||||
bool _isCreatingNew = false;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isConnected = ref.watch(connectionStateProvider);
|
||||
|
||||
return Scaffold(
|
||||
body: Row(
|
||||
children: [
|
||||
// Left Panel: Saved Connections List
|
||||
SizedBox(
|
||||
width: 320,
|
||||
child: SavedConnectionsList(
|
||||
onCreateNew: () {
|
||||
setState(() => _isCreatingNew = true);
|
||||
},
|
||||
),
|
||||
),
|
||||
|
||||
const VerticalDivider(width: 1),
|
||||
|
||||
// Right Panel: Dynamic Content
|
||||
Expanded(
|
||||
child: Builder(
|
||||
builder: (context) {
|
||||
if (isConnected) {
|
||||
return const TerminalView();
|
||||
} else if (_isCreatingNew) {
|
||||
return NewConnectionForm(
|
||||
onCancel: () {
|
||||
setState(() => _isCreatingNew = false);
|
||||
},
|
||||
);
|
||||
} else {
|
||||
return const Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Icon(Icons.terminal, size: 64, color: Colors.grey),
|
||||
SizedBox(height: 16),
|
||||
Text(
|
||||
'Select a connection from the list\nor create a new one.',
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(fontSize: 18, color: Colors.grey),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user