new: auto refresh container page

This commit is contained in:
lollipopkit
2024-02-20 15:16:40 +08:00
parent 813cfb56a2
commit f4bf7a4d5e
3 changed files with 23 additions and 5 deletions

View File

@@ -73,8 +73,6 @@ extension SSHClientX on SSHClient {
cmd,
redirectToBash: redirectToBash,
onStderr: (data, session) async {
debugPrint(
" --- execWithPwd stderr (reqPwd = $isRequestingPwd) --- $data");
onStderr?.call(data, session);
if (isRequestingPwd) return;
@@ -84,7 +82,6 @@ extension SSHClientX on SSHClient {
if (context == null) return;
final pwd = await context.showPwdDialog(user);
if (pwd == null || pwd.isEmpty) {
debugPrint("Empty pwd. Exiting");
session.kill(SSHSignal.INT);
} else {
session.stdin.add('$pwd\n'.uint8List);
@@ -94,7 +91,6 @@ extension SSHClientX on SSHClient {
},
onStdout: (data, sink) async {
onStdout?.call(data, sink);
debugPrint(" --- execWithPwd stdout --- $data");
},
stdin: stdin,
);

View File

@@ -236,6 +236,9 @@ class SettingStore extends PersistentStore {
/// Parse container stat
late final containerParseStat = property('containerParseStat', true);
/// Auto refresh container status
late final contaienrAutoRefresh = property('contaienrAutoRefresh', true);
// Never show these settings for users
//
// ------BEGIN------

View File

@@ -1,3 +1,5 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:toolbox/core/extension/context/common.dart';
@@ -49,6 +51,7 @@ class _ContainerPageState extends State<ContainerPage> {
@override
void initState() {
super.initState();
_initAutoRefresh();
}
@override
@@ -300,7 +303,8 @@ class _ContainerPageState extends State<ContainerPage> {
child: Text(l10n.dockerEditHost),
),
);
return CardX(child: Column(
return CardX(
child: Column(
children: children,
));
}
@@ -582,4 +586,19 @@ class _ContainerPageState extends State<ContainerPage> {
// break;
}
}
void _initAutoRefresh() {
if (Stores.setting.contaienrAutoRefresh.fetch()) {
Timer.periodic(
Duration(seconds: Stores.setting.serverStatusUpdateInterval.fetch()),
(timer) {
if (mounted) {
_container.refresh();
} else {
timer.cancel();
}
},
);
}
}
}