mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
opt.: routes
This commit is contained in:
@@ -5,7 +5,6 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:server_box/core/extension/context/locale.dart';
|
||||
import 'package:server_box/data/res/build_data.dart';
|
||||
import 'package:server_box/data/res/rebuild.dart';
|
||||
import 'package:server_box/data/res/store.dart';
|
||||
import 'package:server_box/generated/l10n/l10n.dart';
|
||||
import 'package:server_box/view/page/home/home.dart';
|
||||
@@ -25,7 +24,6 @@ class MyApp extends StatelessWidget {
|
||||
if (!Stores.setting.useSystemPrimaryColor.fetch()) {
|
||||
final colorSeed = Color(Stores.setting.colorSeed.fetch());
|
||||
UIs.colorSeed = colorSeed;
|
||||
// Past code uses [UIs.primaryColor] as the primary color
|
||||
UIs.primaryColor = colorSeed;
|
||||
return _buildApp(
|
||||
context,
|
||||
|
||||
@@ -5,14 +5,11 @@ import 'package:server_box/data/model/server/server_private_info.dart';
|
||||
import 'package:server_box/data/res/store.dart';
|
||||
import 'package:server_box/view/page/container.dart';
|
||||
import 'package:server_box/view/page/home/home.dart';
|
||||
import 'package:server_box/view/page/iperf.dart';
|
||||
import 'package:server_box/view/page/ping.dart';
|
||||
import 'package:server_box/view/page/private_key/edit.dart';
|
||||
import 'package:server_box/view/page/pve.dart';
|
||||
import 'package:server_box/view/page/server/detail/view.dart';
|
||||
import 'package:server_box/view/page/setting/platform/android.dart';
|
||||
import 'package:server_box/view/page/setting/platform/ios.dart';
|
||||
import 'package:server_box/view/page/setting/seq/srv_func_seq.dart';
|
||||
import 'package:server_box/view/page/snippet/result.dart';
|
||||
import 'package:server_box/view/page/ssh/page.dart';
|
||||
import 'package:server_box/view/page/setting/seq/virt_key.dart';
|
||||
@@ -154,16 +151,4 @@ class AppRoutes {
|
||||
),
|
||||
'snippet_result');
|
||||
}
|
||||
|
||||
static AppRoutes iperf({Key? key, required Spi spi}) {
|
||||
return AppRoutes(IPerfPage(key: key, spi: spi), 'iperf');
|
||||
}
|
||||
|
||||
static AppRoutes serverFuncBtnsOrder({Key? key}) {
|
||||
return AppRoutes(ServerFuncBtnsOrderPage(key: key), 'server_func_btns_seq');
|
||||
}
|
||||
|
||||
static AppRoutes pve({Key? key, required Spi spi}) {
|
||||
return AppRoutes(PvePage(key: key, spi: spi), 'pve');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ import 'package:server_box/data/model/server/private_key_info.dart';
|
||||
import 'package:server_box/data/model/server/server_private_info.dart';
|
||||
import 'package:server_box/data/model/server/snippet.dart';
|
||||
import 'package:server_box/data/res/misc.dart';
|
||||
import 'package:server_box/data/res/rebuild.dart';
|
||||
import 'package:server_box/data/res/store.dart';
|
||||
|
||||
part 'backup.g.dart';
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
import 'package:fl_lib/fl_lib.dart';
|
||||
|
||||
abstract final class RNodes {
|
||||
static final app = RNode();
|
||||
static final dark = false.vn;
|
||||
}
|
||||
@@ -35,7 +35,7 @@ final class _AppBar extends StatelessWidget implements PreferredSizeWidget {
|
||||
@override
|
||||
Size get preferredSize {
|
||||
final height = switch (Pfs.type) {
|
||||
Pfs.macos => paddingTop + (CustomAppBar.sysStatusBarHeight ?? 0),
|
||||
Pfs.macos => paddingTop + CustomAppBar.sysStatusBarHeight,
|
||||
_ => paddingTop,
|
||||
};
|
||||
return Size.fromHeight(height);
|
||||
|
||||
@@ -4,12 +4,24 @@ import 'package:server_box/core/extension/context/locale.dart';
|
||||
import 'package:server_box/core/route.dart';
|
||||
import 'package:server_box/data/model/server/server_private_info.dart';
|
||||
|
||||
class IPerfPage extends StatefulWidget {
|
||||
final class IPerfPageArgs {
|
||||
final Spi spi;
|
||||
const IPerfPage({super.key, required this.spi});
|
||||
|
||||
const IPerfPageArgs({required this.spi});
|
||||
}
|
||||
|
||||
class IPerfPage extends StatefulWidget {
|
||||
final IPerfPageArgs args;
|
||||
|
||||
const IPerfPage({super.key, required this.args});
|
||||
|
||||
@override
|
||||
State<IPerfPage> createState() => _IPerfPageState();
|
||||
|
||||
static const route = AppRouteArg<void, IPerfPageArgs>(
|
||||
page: IPerfPage.new,
|
||||
path: '/iperf',
|
||||
);
|
||||
}
|
||||
|
||||
class _IPerfPageState extends State<IPerfPage> {
|
||||
@@ -44,7 +56,7 @@ class _IPerfPageState extends State<IPerfPage> {
|
||||
return;
|
||||
}
|
||||
AppRoutes.ssh(
|
||||
spi: widget.spi,
|
||||
spi: widget.args.spi,
|
||||
initCmd: 'iperf -c ${_hostCtrl.text} -p ${_portCtrl.text}',
|
||||
).go(context);
|
||||
},
|
||||
|
||||
@@ -10,14 +10,22 @@ import 'package:server_box/data/res/store.dart';
|
||||
import 'package:server_box/view/widget/percent_circle.dart';
|
||||
import 'package:server_box/view/widget/two_line_text.dart';
|
||||
|
||||
final class PvePage extends StatefulWidget {
|
||||
final class PvePageArgs {
|
||||
final Spi spi;
|
||||
|
||||
const PvePageArgs({required this.spi});
|
||||
}
|
||||
|
||||
final class PvePage extends StatefulWidget {
|
||||
final PvePageArgs args;
|
||||
|
||||
const PvePage({
|
||||
super.key,
|
||||
required this.spi,
|
||||
required this.args,
|
||||
});
|
||||
|
||||
static const route = AppRouteArg<void, PvePageArgs>(page: PvePage.new, path: '/pve');
|
||||
|
||||
@override
|
||||
State<PvePage> createState() => _PvePageState();
|
||||
}
|
||||
@@ -25,7 +33,7 @@ final class PvePage extends StatefulWidget {
|
||||
const _kHorziPadding = 11.0;
|
||||
|
||||
final class _PvePageState extends State<PvePage> {
|
||||
late final _pve = PveProvider(spi: widget.spi);
|
||||
late final _pve = PveProvider(spi: widget.args.spi);
|
||||
late MediaQueryData _media;
|
||||
Timer? _timer;
|
||||
|
||||
@@ -53,7 +61,7 @@ final class _PvePageState extends State<PvePage> {
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: TwoLineText(up: 'PVE', down: widget.spi.name),
|
||||
title: TwoLineText(up: 'PVE', down: widget.args.spi.name),
|
||||
actions: [
|
||||
ValBuilder(
|
||||
listenable: _pve.err,
|
||||
|
||||
@@ -17,10 +17,9 @@ import 'package:server_box/data/model/server/sensors.dart';
|
||||
import 'package:server_box/data/model/server/server_private_info.dart';
|
||||
import 'package:server_box/data/model/server/system.dart';
|
||||
import 'package:server_box/data/res/store.dart';
|
||||
import 'package:server_box/view/page/pve.dart';
|
||||
import 'package:server_box/view/page/server/edit.dart';
|
||||
import 'package:server_box/view/widget/server_func_btns.dart';
|
||||
|
||||
import 'package:server_box/core/route.dart';
|
||||
import 'package:server_box/data/model/server/server.dart';
|
||||
|
||||
part 'misc.dart';
|
||||
@@ -865,7 +864,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
|
||||
title: const Text('PVE'),
|
||||
leading: const Icon(FontAwesome.server_solid, size: 17),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
onTap: () => AppRoutes.pve(spi: si.spi).go(context),
|
||||
onTap: () => PvePage.route.go(context, PvePageArgs(spi: si.spi)),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ extension _Server on _AppSettingsPageState {
|
||||
return ListTile(
|
||||
title: Text(l10n.sequence),
|
||||
trailing: const Icon(Icons.keyboard_arrow_right),
|
||||
onTap: () => AppRoutes.serverFuncBtnsOrder().go(context),
|
||||
onTap: () => ServerFuncBtnsOrderPage.route.go(context),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ import 'package:server_box/generated/l10n/l10n.dart';
|
||||
import 'package:icons_plus/icons_plus.dart';
|
||||
import 'package:server_box/core/extension/context/locale.dart';
|
||||
import 'package:server_box/data/res/github_id.dart';
|
||||
import 'package:server_box/data/res/rebuild.dart';
|
||||
import 'package:server_box/data/res/store.dart';
|
||||
import 'package:server_box/data/res/url.dart';
|
||||
|
||||
@@ -20,6 +19,7 @@ import 'package:server_box/data/res/build_data.dart';
|
||||
import 'package:server_box/view/page/backup.dart';
|
||||
import 'package:server_box/view/page/editor.dart';
|
||||
import 'package:server_box/view/page/private_key/list.dart';
|
||||
import 'package:server_box/view/page/setting/seq/srv_func_seq.dart';
|
||||
|
||||
part 'about.dart';
|
||||
part 'entries/app.dart';
|
||||
|
||||
@@ -9,6 +9,8 @@ class ServerFuncBtnsOrderPage extends StatefulWidget {
|
||||
|
||||
@override
|
||||
State<ServerFuncBtnsOrderPage> createState() => _ServerDetailOrderPageState();
|
||||
|
||||
static const route = AppRouteNoArg(page: ServerFuncBtnsOrderPage.new, path: '/setting/seq/srv_func');
|
||||
}
|
||||
|
||||
class _ServerDetailOrderPageState extends State<ServerFuncBtnsOrderPage> {
|
||||
|
||||
@@ -154,7 +154,7 @@ class SSHPageState extends State<SSHPage>
|
||||
_media.padding.top,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
top: widget.notFromTab ? CustomAppBar.sysStatusBarHeight ?? 0 : 0,
|
||||
top: widget.notFromTab ? CustomAppBar.sysStatusBarHeight : 0,
|
||||
left: _horizonPadding,
|
||||
right: _horizonPadding,
|
||||
),
|
||||
@@ -172,7 +172,7 @@ class SSHPageState extends State<SSHPage>
|
||||
showToolbar: isMobile,
|
||||
viewOffset: Offset(
|
||||
2 * _horizonPadding,
|
||||
CustomAppBar.sysStatusBarHeight ?? _media.padding.top,
|
||||
CustomAppBar.sysStatusBarHeight,
|
||||
),
|
||||
hideScrollBar: false,
|
||||
focusNode: widget.focusNode,
|
||||
|
||||
@@ -9,6 +9,7 @@ import 'package:server_box/data/model/server/snippet.dart';
|
||||
import 'package:server_box/data/provider/server.dart';
|
||||
import 'package:server_box/data/provider/snippet.dart';
|
||||
import 'package:server_box/data/res/store.dart';
|
||||
import 'package:server_box/view/page/iperf.dart';
|
||||
import 'package:server_box/view/page/systemd.dart';
|
||||
|
||||
import 'package:server_box/core/route.dart';
|
||||
@@ -161,10 +162,8 @@ void _onTapMoreBtns(
|
||||
_gotoSSH(spi, context);
|
||||
break;
|
||||
case ServerFuncBtn.iperf:
|
||||
AppRoutes.iperf(spi: spi).checkGo(
|
||||
context: context,
|
||||
check: () => _checkClient(context, spi.id),
|
||||
);
|
||||
if (!_checkClient(context, spi.id)) return;
|
||||
IPerfPage.route.go(context, IPerfPageArgs(spi: spi));
|
||||
break;
|
||||
case ServerFuncBtn.systemd:
|
||||
SystemdPage.route.go(context, SystemdPageArgs(spi: spi));
|
||||
|
||||
15
pubspec.lock
15
pubspec.lock
@@ -478,8 +478,8 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: "v1.0.257"
|
||||
resolved-ref: af64c32469b797d98fa539f04592b06bdb977d1a
|
||||
ref: "v1.0.263"
|
||||
resolved-ref: "42579f45363029584c6fbe11f84b6aa0780339e7"
|
||||
url: "https://github.com/lppcg/fl_lib"
|
||||
source: git
|
||||
version: "0.0.1"
|
||||
@@ -1657,12 +1657,11 @@ packages:
|
||||
webdav_client_plus:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: "v1.0.86"
|
||||
resolved-ref: "7e08000e20c001b15a747c9564adfbfd45c7cadc"
|
||||
url: "https://github.com/lollipopkit/webdav_client"
|
||||
source: git
|
||||
version: "1.2.2"
|
||||
name: webdav_client_plus
|
||||
sha256: "0f992fe05a46674a800d9fd8fdc5c54952ff739da155c558776a62ca0c2bed3a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
@@ -30,6 +30,7 @@ dependencies:
|
||||
json_annotation: ^4.9.0
|
||||
choice: ^2.3.2
|
||||
flutter_reorderable_grid_view: ^5.1.0
|
||||
webdav_client_plus: ^1.0.2
|
||||
dartssh2:
|
||||
git:
|
||||
url: https://github.com/lollipopkit/dartssh2
|
||||
@@ -54,14 +55,10 @@ dependencies:
|
||||
git:
|
||||
url: https://github.com/lollipopkit/plain_notification_token
|
||||
ref: v1.0.23
|
||||
webdav_client_plus:
|
||||
git:
|
||||
url: https://github.com/lollipopkit/webdav_client
|
||||
ref: v1.0.86
|
||||
fl_lib:
|
||||
git:
|
||||
url: https://github.com/lppcg/fl_lib
|
||||
ref: v1.0.262
|
||||
ref: v1.0.263
|
||||
|
||||
dependency_overrides:
|
||||
# webdav_client_plus:
|
||||
|
||||
Reference in New Issue
Block a user