optimization: desktop UI (#747)
This commit is contained in:
@@ -17,8 +17,8 @@ extension _App on _AppSettingsPageState {
|
||||
|
||||
Widget? _buildPlatformSetting() {
|
||||
final func = switch (Pfs.type) {
|
||||
Pfs.android => AppRoutes.androidSettings().go,
|
||||
Pfs.ios => AppRoutes.iosSettings().go,
|
||||
Pfs.android => AndroidSettingsPage.route.go,
|
||||
Pfs.ios => IosSettingsPage.route.go,
|
||||
_ => null,
|
||||
};
|
||||
if (func == null) return null;
|
||||
|
||||
@@ -142,7 +142,7 @@ extension _Server on _AppSettingsPageState {
|
||||
leading: const Icon(OctIcons.sort_desc, size: _kIconSize),
|
||||
title: Text(l10n.serverOrder),
|
||||
trailing: const Icon(Icons.keyboard_arrow_right),
|
||||
onTap: () => AppRoutes.serverOrder().go(context),
|
||||
onTap: () => ServerOrderPage.route.go(context),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ extension _Server on _AppSettingsPageState {
|
||||
leading: const Icon(OctIcons.sort_desc, size: _kIconSize),
|
||||
title: Text(l10n.serverDetailOrder),
|
||||
trailing: const Icon(Icons.keyboard_arrow_right),
|
||||
onTap: () => AppRoutes.serverDetailOrder().go(context),
|
||||
onTap: () => ServerDetailOrderPage.route.go(context),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ extension _SSH on _AppSettingsPageState {
|
||||
leading: const Icon(BoxIcons.bxs_keyboard),
|
||||
title: Text(l10n.editVirtKeys),
|
||||
trailing: const Icon(Icons.keyboard_arrow_right),
|
||||
onTap: () => AppRoutes.sshVirtKeySetting().go(context),
|
||||
onTap: () => SSHVirtKeySettingPage.route.go(context),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,13 +13,17 @@ import 'package:server_box/data/res/github_id.dart';
|
||||
import 'package:server_box/data/res/store.dart';
|
||||
import 'package:server_box/data/res/url.dart';
|
||||
|
||||
import 'package:server_box/core/route.dart';
|
||||
import 'package:server_box/data/model/app/net_view.dart';
|
||||
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/platform/android.dart';
|
||||
import 'package:server_box/view/page/setting/platform/ios.dart';
|
||||
import 'package:server_box/view/page/setting/seq/srv_detail_seq.dart';
|
||||
import 'package:server_box/view/page/setting/seq/srv_func_seq.dart';
|
||||
import 'package:server_box/view/page/setting/seq/srv_seq.dart';
|
||||
import 'package:server_box/view/page/setting/seq/virt_key.dart';
|
||||
|
||||
part 'about.dart';
|
||||
part 'entries/app.dart';
|
||||
@@ -35,16 +39,17 @@ const _kIconSize = 23.0;
|
||||
class SettingsPage extends StatefulWidget {
|
||||
const SettingsPage({super.key});
|
||||
|
||||
static const route = AppRouteNoArg(page: SettingsPage.new, path: '/settings');
|
||||
static const route = AppRouteNoArg(
|
||||
page: SettingsPage.new,
|
||||
path: '/settings',
|
||||
);
|
||||
|
||||
@override
|
||||
State<SettingsPage> createState() => _SettingsPageState();
|
||||
}
|
||||
|
||||
class _SettingsPageState extends State<SettingsPage>
|
||||
with SingleTickerProviderStateMixin {
|
||||
late final _tabCtrl =
|
||||
TabController(length: SettingsTabs.values.length, vsync: this);
|
||||
class _SettingsPageState extends State<SettingsPage> with SingleTickerProviderStateMixin {
|
||||
late final _tabCtrl = TabController(length: SettingsTabs.values.length, vsync: this);
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
@@ -62,9 +67,7 @@ class _SettingsPageState extends State<SettingsPage>
|
||||
dividerHeight: 0,
|
||||
tabAlignment: TabAlignment.center,
|
||||
isScrollable: true,
|
||||
tabs: SettingsTabs.values
|
||||
.map((e) => Tab(text: e.i18n))
|
||||
.toList(growable: false),
|
||||
tabs: SettingsTabs.values.map((e) => Tab(text: e.i18n)).toList(growable: false),
|
||||
),
|
||||
actions: [
|
||||
Btn.text(
|
||||
@@ -120,12 +123,7 @@ final class _AppSettingsPageState extends State<AppSettingsPage> {
|
||||
children: [
|
||||
[const CenterGreyTitle('App'), _buildApp()],
|
||||
[CenterGreyTitle(l10n.server), _buildServer()],
|
||||
[
|
||||
const CenterGreyTitle('SSH'),
|
||||
_buildSSH(),
|
||||
const CenterGreyTitle('SFTP'),
|
||||
_buildSFTP()
|
||||
],
|
||||
[const CenterGreyTitle('SSH'), _buildSSH(), const CenterGreyTitle('SFTP'), _buildSFTP()],
|
||||
[
|
||||
CenterGreyTitle(l10n.container),
|
||||
_buildContainer(),
|
||||
@@ -162,6 +160,5 @@ enum SettingsTabs {
|
||||
SettingsTabs.about => const _AppAboutPage(),
|
||||
};
|
||||
|
||||
static final List<Widget> pages =
|
||||
SettingsTabs.values.map((e) => e.page).toList();
|
||||
static final List<Widget> pages = SettingsTabs.values.map((e) => e.page).toList();
|
||||
}
|
||||
|
||||
@@ -9,6 +9,11 @@ class AndroidSettingsPage extends StatefulWidget {
|
||||
|
||||
@override
|
||||
State<AndroidSettingsPage> createState() => _AndroidSettingsPageState();
|
||||
|
||||
static const route = AppRouteNoArg(
|
||||
page: AndroidSettingsPage.new,
|
||||
path: '/settings/android',
|
||||
);
|
||||
}
|
||||
|
||||
const _homeWidgetPrefPrefix = 'widget_';
|
||||
@@ -24,8 +29,7 @@ class _AndroidSettingsPageState extends State<AndroidSettingsPage> {
|
||||
// _buildFgService(),
|
||||
_buildBgRun(),
|
||||
_buildAndroidWidgetSharedPreference(),
|
||||
if (BioAuth.isPlatformSupported)
|
||||
PlatformPublicSettings.buildBioAuth(),
|
||||
if (BioAuth.isPlatformSupported) PlatformPublicSettings.buildBioAuth(),
|
||||
].map((e) => CardX(child: e)).toList(),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -6,14 +6,19 @@ import 'package:server_box/data/res/store.dart';
|
||||
import 'package:server_box/view/page/setting/platform/platform_pub.dart';
|
||||
import 'package:watch_connectivity/watch_connectivity.dart';
|
||||
|
||||
class IOSSettingsPage extends StatefulWidget {
|
||||
const IOSSettingsPage({super.key});
|
||||
class IosSettingsPage extends StatefulWidget {
|
||||
const IosSettingsPage({super.key});
|
||||
|
||||
@override
|
||||
State<IOSSettingsPage> createState() => _IOSSettingsPageState();
|
||||
State<IosSettingsPage> createState() => _IosSettingsPageState();
|
||||
|
||||
static const route = AppRouteNoArg(
|
||||
page: IosSettingsPage.new,
|
||||
path: '/settings/ios',
|
||||
);
|
||||
}
|
||||
|
||||
class _IOSSettingsPageState extends State<IOSSettingsPage> {
|
||||
class _IosSettingsPageState extends State<IosSettingsPage> {
|
||||
final _pushToken = ValueNotifier<String?>(null);
|
||||
|
||||
final wc = WatchConnectivity();
|
||||
|
||||
@@ -9,6 +9,11 @@ class ServerDetailOrderPage extends StatefulWidget {
|
||||
|
||||
@override
|
||||
State<ServerDetailOrderPage> createState() => _ServerDetailOrderPageState();
|
||||
|
||||
static const route = AppRouteNoArg(
|
||||
page: ServerDetailOrderPage.new,
|
||||
path: '/settings/order/server_detail',
|
||||
);
|
||||
}
|
||||
|
||||
class _ServerDetailOrderPageState extends State<ServerDetailOrderPage> {
|
||||
|
||||
@@ -10,7 +10,10 @@ class ServerFuncBtnsOrderPage extends StatefulWidget {
|
||||
@override
|
||||
State<ServerFuncBtnsOrderPage> createState() => _ServerDetailOrderPageState();
|
||||
|
||||
static const route = AppRouteNoArg(page: ServerFuncBtnsOrderPage.new, path: '/setting/seq/srv_func');
|
||||
static const route = AppRouteNoArg(
|
||||
page: ServerFuncBtnsOrderPage.new,
|
||||
path: '/setting/seq/srv_func',
|
||||
);
|
||||
}
|
||||
|
||||
class _ServerDetailOrderPageState extends State<ServerFuncBtnsOrderPage> {
|
||||
@@ -28,10 +31,7 @@ class _ServerDetailOrderPageState extends State<ServerFuncBtnsOrderPage> {
|
||||
return ValBuilder(
|
||||
listenable: prop.listenable(),
|
||||
builder: (keys) {
|
||||
final disabled = ServerFuncBtn.values
|
||||
.map((e) => e.index)
|
||||
.where((e) => !keys.contains(e))
|
||||
.toList();
|
||||
final disabled = ServerFuncBtn.values.map((e) => e.index).where((e) => !keys.contains(e)).toList();
|
||||
final allKeys = [...keys, ...disabled];
|
||||
return ReorderableListView.builder(
|
||||
padding: const EdgeInsets.all(7),
|
||||
|
||||
@@ -10,6 +10,11 @@ class ServerOrderPage extends StatefulWidget {
|
||||
|
||||
@override
|
||||
State<ServerOrderPage> createState() => _ServerOrderPageState();
|
||||
|
||||
static const route = AppRouteNoArg(
|
||||
page: ServerOrderPage.new,
|
||||
path: '/settings/order/server',
|
||||
);
|
||||
}
|
||||
|
||||
class _ServerOrderPageState extends State<ServerOrderPage> {
|
||||
|
||||
@@ -9,6 +9,11 @@ class SSHVirtKeySettingPage extends StatefulWidget {
|
||||
|
||||
@override
|
||||
State<SSHVirtKeySettingPage> createState() => _SSHVirtKeySettingPageState();
|
||||
|
||||
static const route = AppRouteNoArg(
|
||||
page: SSHVirtKeySettingPage.new,
|
||||
path: '/settings/ssh_virt_key',
|
||||
);
|
||||
}
|
||||
|
||||
class _SSHVirtKeySettingPageState extends State<SSHVirtKeySettingPage> {
|
||||
|
||||
Reference in New Issue
Block a user