refactors (#539)

This commit is contained in:
lollipopkit🏳️‍⚧️
2024-08-16 01:24:43 +08:00
committed by GitHub
parent 7e5bb54c98
commit 38366a2ef3
45 changed files with 527 additions and 640 deletions

View File

@@ -11,8 +11,8 @@ import 'package:server_box/core/extension/context/locale.dart';
import 'package:server_box/core/utils/ssh_auth.dart';
import 'package:server_box/core/utils/server.dart';
import 'package:server_box/data/model/server/snippet.dart';
import 'package:server_box/data/provider/snippet.dart';
import 'package:server_box/data/provider/virtual_keyboard.dart';
import 'package:server_box/data/res/provider.dart';
import 'package:server_box/data/res/store.dart';
import 'package:wakelock_plus/wakelock_plus.dart';
import 'package:xterm/core.dart';
@@ -26,7 +26,7 @@ import 'package:server_box/data/res/terminal.dart';
const _echoPWD = 'echo \$PWD';
class SSHPage extends StatefulWidget {
final ServerPrivateInfo spi;
final Spi spi;
final String? initCmd;
final Snippet? initSnippet;
final bool notFromTab;
@@ -68,7 +68,7 @@ class SSHPageState extends State<SSHPage>
bool _isDark = false;
Timer? _virtKeyLongPressTimer;
late SSHClient? _client = widget.spi.server?.client;
late SSHClient? _client = widget.spi.server?.value.client;
Timer? _discontinuityTimer;
@override
@@ -298,10 +298,10 @@ class SSHPageState extends State<SSHPage>
case VirtualKeyFunc.snippet:
final snippets = await context.showPickWithTagDialog<Snippet>(
title: l10n.snippet,
tags: Pros.snippet.tags,
tags: SnippetProvider.tags,
itemsBuilder: (e) {
if (e == null) return Pros.snippet.snippets;
return Pros.snippet.snippets
if (e == null) return SnippetProvider.snippets.value;
return SnippetProvider.snippets.value
.where((element) => element.tags?.contains(e) ?? false)
.toList();
},
@@ -417,7 +417,7 @@ class SSHPageState extends State<SSHPage>
_initService();
for (final snippet in Pros.snippet.snippets) {
for (final snippet in SnippetProvider.snippets.value) {
if (snippet.autoRunOn?.contains(widget.spi.id) == true) {
snippet.runInTerm(_terminal, widget.spi);
}

View File

@@ -2,12 +2,10 @@ import 'package:fl_lib/fl_lib.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:icons_plus/icons_plus.dart';
import 'package:provider/provider.dart';
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';
import 'package:server_box/data/provider/server.dart';
import 'package:server_box/data/res/provider.dart';
import 'package:server_box/view/page/ssh/page.dart';
class SSHTabPage extends StatefulWidget {
@@ -86,8 +84,8 @@ class _SSHTabPageState extends State<SSHTabPage>
Widget _buildAddPage() {
return Center(
key: const Key('sshTabAddServer'),
child: Consumer<ServerProvider>(builder: (_, pro, __) {
if (pro.serverOrder.isEmpty) {
child: ServerProvider.serverOrder.listenVal((order) {
if (order.isEmpty) {
return Center(
child: Text(libL10n.empty, textAlign: TextAlign.center),
);
@@ -98,7 +96,7 @@ class _SSHTabPageState extends State<SSHTabPage>
padding: const EdgeInsets.all(7),
cacheExtent: 50,
itemBuilder: (context, idx) {
final spi = Pros.server.pick(id: pro.serverOrder[idx])?.spi;
final spi = ServerProvider.pick(id: order[idx])?.value.spi;
if (spi == null) return UIs.placeholder;
return CardX(
child: InkWell(
@@ -117,7 +115,7 @@ class _SSHTabPageState extends State<SSHTabPage>
),
);
},
itemCount: pro.servers.length,
itemCount: ServerProvider.servers.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: 3 * (ratio / (9 / 16)),
@@ -147,7 +145,7 @@ class _SSHTabPageState extends State<SSHTabPage>
);
}
void _onTapInitCard(ServerPrivateInfo spi) async {
void _onTapInitCard(Spi spi) async {
final name = () {
final reg = RegExp('${spi.name}\\((\\d+)\\)');
final idxs = _tabMap.keys