optimization: desktop UI (#747)

This commit is contained in:
lollipopkit🏳️‍⚧️
2025-05-13 04:57:37 +08:00
committed by GitHub
parent e520929411
commit 8627ff823f
52 changed files with 2459 additions and 1990 deletions

View File

@@ -1,7 +1,7 @@
import 'package:fl_lib/fl_lib.dart';
import 'package:flutter/material.dart';
import 'package:server_box/core/extension/context/locale.dart';
import 'package:server_box/view/page/server/tab.dart';
import 'package:server_box/view/page/server/tab/tab.dart';
// import 'package:server_box/view/page/setting/entry.dart';
import 'package:server_box/view/page/snippet/list.dart';
import 'package:server_box/view/page/ssh/tab.dart';

View File

@@ -1,5 +1,6 @@
import 'dart:convert';
import 'package:equatable/equatable.dart';
import 'package:fl_lib/fl_lib.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:json_annotation/json_annotation.dart';
@@ -20,7 +21,7 @@ part 'server_private_info.g.dart';
/// Nowaday, more fields are added to this class, and it's renamed to `Spi`.
@JsonSerializable()
@HiveType(typeId: 3)
class Spi {
class Spi with EquatableMixin {
@HiveField(0)
final String name;
@HiveField(1)
@@ -81,6 +82,10 @@ class Spi {
@override
String toString() => id;
@override
List<Object?> get props =>
[name, ip, port, user, pwd, keyId, tags, alterUrl, autoConnect, jumpId, custom, wolCfg, envs];
}
extension Spix on Spi {

View File

@@ -1,5 +1,6 @@
import 'dart:async';
import 'package:equatable/equatable.dart';
import 'package:fl_lib/fl_lib.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:json_annotation/json_annotation.dart';
@@ -10,7 +11,7 @@ part 'snippet.g.dart';
@JsonSerializable()
@HiveType(typeId: 2)
class Snippet {
class Snippet with EquatableMixin {
@HiveField(0)
final String name;
@HiveField(1)
@@ -32,11 +33,21 @@ class Snippet {
this.autoRunOn,
});
factory Snippet.fromJson(Map<String, dynamic> json) =>
_$SnippetFromJson(json);
factory Snippet.fromJson(Map<String, dynamic> json) => _$SnippetFromJson(json);
Map<String, dynamic> toJson() => _$SnippetToJson(this);
@override
List<Object?> get props => [
name,
script,
tags,
note,
autoRunOn,
];
}
extension SnippetX on Snippet {
static final fmtFinder = RegExp(r'\$\{[^{}]+\}');
String fmtWithSpi(Spi spi) {