mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 23:34:24 +01:00
Auto-close the tab where session is done
This commit is contained in:
@@ -206,7 +206,7 @@ class _ServerPageState extends State<ServerPage>
|
||||
late final List<Widget> children;
|
||||
if (srv.state == ServerState.finished) {
|
||||
if (cardStatus.value.flip) {
|
||||
children = [title, ..._buildFlipedCard(srv)];
|
||||
children = [title, ..._buildFlippedCard(srv)];
|
||||
} else {
|
||||
children = [title, ..._buildNormalCard(srv.status, srv.spi)];
|
||||
}
|
||||
@@ -228,7 +228,7 @@ class _ServerPageState extends State<ServerPage>
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> _buildFlipedCard(Server srv) {
|
||||
List<Widget> _buildFlippedCard(Server srv) {
|
||||
return [
|
||||
UIs.height13,
|
||||
Row(
|
||||
|
||||
@@ -33,11 +33,14 @@ class SSHPage extends StatefulWidget {
|
||||
final ServerPrivateInfo spi;
|
||||
final String? initCmd;
|
||||
final bool pop;
|
||||
final Function()? onSessionEnd;
|
||||
|
||||
const SSHPage({
|
||||
super.key,
|
||||
required this.spi,
|
||||
this.initCmd,
|
||||
this.pop = true,
|
||||
this.onSessionEnd,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -381,6 +384,7 @@ class _SSHPageState extends State<SSHPage> with AutomaticKeepAliveClientMixin {
|
||||
if (mounted && widget.pop) {
|
||||
context.pop();
|
||||
}
|
||||
widget.onSessionEnd?.call();
|
||||
}
|
||||
|
||||
void _listen(Stream<Uint8List>? stream) {
|
||||
|
||||
@@ -71,6 +71,7 @@ class _SSHTabPageState extends State<SSHTabPage>
|
||||
if (confirm != true) {
|
||||
return;
|
||||
}
|
||||
// debugPrint("Removing a tab whose tabId = $e");
|
||||
_tabIds.remove(e);
|
||||
_refreshTabs();
|
||||
},
|
||||
@@ -104,6 +105,12 @@ class _SSHTabPageState extends State<SSHTabPage>
|
||||
key: key,
|
||||
spi: spi,
|
||||
pop: false,
|
||||
onSessionEnd: () {
|
||||
// debugPrint("Session done received on page whose tabId = $name");
|
||||
// debugPrint("key = $key");
|
||||
_tabIds.remove(name);
|
||||
_refreshTabs();
|
||||
},
|
||||
);
|
||||
_refreshTabs();
|
||||
_tabController.animateTo(_tabIds.length - 1);
|
||||
|
||||
Reference in New Issue
Block a user