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

@@ -5,8 +5,9 @@ import 'package:flutter/material.dart';
import 'package:server_box/core/extension/context/locale.dart';
import 'package:server_box/data/model/server/server_private_info.dart';
import 'package:server_box/data/model/sftp/worker.dart';
import 'package:server_box/data/provider/server.dart';
import 'package:server_box/data/provider/sftp.dart';
import 'package:server_box/data/res/misc.dart';
import 'package:server_box/data/res/provider.dart';
import 'package:server_box/view/widget/omit_start_text.dart';
import 'package:server_box/core/route.dart';
@@ -282,10 +283,10 @@ class _LocalStoragePageState extends State<LocalStoragePage> {
onTap: () async {
context.pop();
final spi = await context.showPickSingleDialog<ServerPrivateInfo>(
final spi = await context.showPickSingleDialog<Spi>(
title: libL10n.select,
items: Pros.server.serverOrder
.map((e) => Pros.server.pick(id: e)?.spi)
items: ServerProvider.serverOrder.value
.map((e) => ServerProvider.pick(id: e)?.value.spi)
.toList(),
name: (e) => e.name,
);
@@ -299,7 +300,7 @@ class _LocalStoragePageState extends State<LocalStoragePage> {
return;
}
Pros.sftp.add(SftpReq(
SftpProvider.add(SftpReq(
spi,
'$remotePath/$fileName',
file.absolute.path,

View File

@@ -11,8 +11,8 @@ import 'package:server_box/core/utils/comparator.dart';
import 'package:server_box/data/model/server/server_private_info.dart';
import 'package:server_box/data/model/sftp/browser_status.dart';
import 'package:server_box/data/model/sftp/worker.dart';
import 'package:server_box/data/provider/sftp.dart';
import 'package:server_box/data/res/misc.dart';
import 'package:server_box/data/res/provider.dart';
import 'package:server_box/data/res/store.dart';
import 'package:server_box/view/widget/omit_start_text.dart';
import 'package:server_box/view/widget/two_line_text.dart';
@@ -21,7 +21,7 @@ import 'package:server_box/view/widget/unix_perm.dart';
import 'package:icons_plus/icons_plus.dart';
class SftpPage extends StatefulWidget {
final ServerPrivateInfo spi;
final Spi spi;
final String? initPath;
final bool isSelect;
@@ -38,7 +38,7 @@ class SftpPage extends StatefulWidget {
class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
late final _status = SftpBrowserStatus(_client);
late final _client = widget.spi.server!.client!;
late final _client = widget.spi.server!.value.client!;
final _sortOption = _SortOption().vn;
@override
@@ -303,7 +303,7 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
localPath,
SftpReqType.download,
);
Pros.sftp.add(req, completer: completer);
SftpProvider.add(req, completer: completer);
final (suc, err) = await context.showLoadingDialog(
fn: () => completer.future,
);
@@ -311,7 +311,7 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
final result = await AppRoutes.editor(path: localPath).go<bool>(context);
if (result != null && result) {
Pros.sftp.add(SftpReq(
SftpProvider.add(SftpReq(
req.spi,
remotePath,
localPath,
@@ -335,7 +335,7 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
context.pop();
final remotePath = _getRemotePath(name);
Pros.sftp.add(
SftpProvider.add(
SftpReq(
widget.spi,
remotePath,
@@ -659,12 +659,13 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
}
showSearch(
context: context,
delegate: SearchPage(
padding: const EdgeInsets.symmetric(horizontal: 7, vertical: 3),
future: (q) => find(q).toList(),
builder: (ctx, e) => _buildItem(e, beforeTap: () => ctx.pop()),
));
context: context,
delegate: SearchPage(
padding: const EdgeInsets.symmetric(horizontal: 7, vertical: 3),
future: (q) => find(q).toList(),
builder: (ctx, e) => _buildItem(e, beforeTap: ctx.pop),
),
);
},
icon: const Icon(Icons.search),
);
@@ -701,7 +702,7 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
final fileName = path.split(Platform.pathSeparator).lastOrNull;
final remotePath = '$remoteDir/$fileName';
Loggers.app.info('SFTP upload local: $path, remote: $remotePath');
Pros.sftp.add(
SftpProvider.add(
SftpReq(widget.spi, remotePath, path, SftpReqType.upload),
);
},

View File

@@ -1,11 +1,9 @@
import 'package:fl_lib/fl_lib.dart';
import 'package:flutter/material.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/sftp/worker.dart';
import 'package:server_box/data/provider/sftp.dart';
import 'package:server_box/data/res/provider.dart';
class SftpMissionPage extends StatefulWidget {
const SftpMissionPage({super.key});
@@ -26,16 +24,15 @@ class _SftpMissionPageState extends State<SftpMissionPage> {
}
Widget _buildBody() {
return Consumer<SftpProvider>(builder: (__, pro, _) {
if (pro.status.isEmpty) {
return SftpProvider.status.listenVal((status) {
if (status.isEmpty) {
return Center(child: Text(libL10n.empty));
}
return ListView.builder(
padding: const EdgeInsets.all(11),
itemCount: pro.status.length,
itemCount: status.length,
itemBuilder: (context, index) {
final status = pro.status[index];
return _buildItem(status);
return _buildItem(status[index]);
},
);
});
@@ -165,7 +162,7 @@ class _SftpMissionPageState extends State<SftpMissionPage> {
)),
actions: Btn.ok(
onTap: () {
Pros.sftp.cancel(id);
SftpProvider.cancel(id);
context.pop();
},
).toList,