mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-18 07:44:26 +01:00
migrate: riverpod 3
This commit is contained in:
@@ -55,9 +55,9 @@ abstract class BackupV2 with _$BackupV2 implements Mergeable {
|
|||||||
await Mergeable.mergeStore(backupData: history, store: Stores.history, force: force);
|
await Mergeable.mergeStore(backupData: history, store: Stores.history, force: force);
|
||||||
await Mergeable.mergeStore(backupData: settings, store: Stores.setting, force: force);
|
await Mergeable.mergeStore(backupData: settings, store: Stores.setting, force: force);
|
||||||
|
|
||||||
if (serverChanged) GlobalRef.gRef?.read(serversNotifierProvider.notifier).reload();
|
if (serverChanged) GlobalRef.gRef?.read(serversProvider.notifier).reload();
|
||||||
if (snippetChanged) GlobalRef.gRef?.read(snippetNotifierProvider.notifier).reload();
|
if (snippetChanged) GlobalRef.gRef?.read(snippetProvider.notifier).reload();
|
||||||
if (keyChanged) GlobalRef.gRef?.read(privateKeyNotifierProvider.notifier).reload();
|
if (keyChanged) GlobalRef.gRef?.read(privateKeyProvider.notifier).reload();
|
||||||
|
|
||||||
_loggerV2.info('Merge completed');
|
_loggerV2.info('Merge completed');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ ServerCustom _$ServerCustomFromJson(Map<String, dynamic> json) => ServerCustom(
|
|||||||
|
|
||||||
Map<String, dynamic> _$ServerCustomToJson(ServerCustom instance) =>
|
Map<String, dynamic> _$ServerCustomToJson(ServerCustom instance) =>
|
||||||
<String, dynamic>{
|
<String, dynamic>{
|
||||||
if (instance.pveAddr case final value?) 'pveAddr': value,
|
'pveAddr': ?instance.pveAddr,
|
||||||
'pveIgnoreCert': instance.pveIgnoreCert,
|
'pveIgnoreCert': instance.pveIgnoreCert,
|
||||||
if (instance.cmds case final value?) 'cmds': value,
|
'cmds': ?instance.cmds,
|
||||||
if (instance.preferTempDev case final value?) 'preferTempDev': value,
|
'preferTempDev': ?instance.preferTempDev,
|
||||||
if (instance.logoUrl case final value?) 'logoUrl': value,
|
'logoUrl': ?instance.logoUrl,
|
||||||
if (instance.netDev case final value?) 'netDev': value,
|
'netDev': ?instance.netDev,
|
||||||
if (instance.scriptDir case final value?) 'scriptDir': value,
|
'scriptDir': ?instance.scriptDir,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -41,19 +41,18 @@ Map<String, dynamic> _$SpiToJson(_Spi instance) => <String, dynamic>{
|
|||||||
'ip': instance.ip,
|
'ip': instance.ip,
|
||||||
'port': instance.port,
|
'port': instance.port,
|
||||||
'user': instance.user,
|
'user': instance.user,
|
||||||
if (instance.pwd case final value?) 'pwd': value,
|
'pwd': ?instance.pwd,
|
||||||
if (instance.keyId case final value?) 'pubKeyId': value,
|
'pubKeyId': ?instance.keyId,
|
||||||
if (instance.tags case final value?) 'tags': value,
|
'tags': ?instance.tags,
|
||||||
if (instance.alterUrl case final value?) 'alterUrl': value,
|
'alterUrl': ?instance.alterUrl,
|
||||||
'autoConnect': instance.autoConnect,
|
'autoConnect': instance.autoConnect,
|
||||||
if (instance.jumpId case final value?) 'jumpId': value,
|
'jumpId': ?instance.jumpId,
|
||||||
if (instance.custom case final value?) 'custom': value,
|
'custom': ?instance.custom,
|
||||||
if (instance.wolCfg case final value?) 'wolCfg': value,
|
'wolCfg': ?instance.wolCfg,
|
||||||
if (instance.envs case final value?) 'envs': value,
|
'envs': ?instance.envs,
|
||||||
'id': instance.id,
|
'id': instance.id,
|
||||||
if (_$SystemTypeEnumMap[instance.customSystemType] case final value?)
|
'customSystemType': ?_$SystemTypeEnumMap[instance.customSystemType],
|
||||||
'customSystemType': value,
|
'disabledCmdTypes': ?instance.disabledCmdTypes,
|
||||||
if (instance.disabledCmdTypes case final value?) 'disabledCmdTypes': value,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const _$SystemTypeEnumMap = {
|
const _$SystemTypeEnumMap = {
|
||||||
|
|||||||
@@ -16,5 +16,5 @@ Map<String, dynamic> _$WakeOnLanCfgToJson(WakeOnLanCfg instance) =>
|
|||||||
<String, dynamic>{
|
<String, dynamic>{
|
||||||
'mac': instance.mac,
|
'mac': instance.mac,
|
||||||
'ip': instance.ip,
|
'ip': instance.ip,
|
||||||
if (instance.pwd case final value?) 'pwd': value,
|
'pwd': ?instance.pwd,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,20 +6,57 @@ part of 'app.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint, type=warning
|
||||||
|
|
||||||
|
@ProviderFor(AppStates)
|
||||||
|
const appStatesProvider = AppStatesProvider._();
|
||||||
|
|
||||||
|
final class AppStatesProvider extends $NotifierProvider<AppStates, AppState> {
|
||||||
|
const AppStatesProvider._()
|
||||||
|
: super(
|
||||||
|
from: null,
|
||||||
|
argument: null,
|
||||||
|
retry: null,
|
||||||
|
name: r'appStatesProvider',
|
||||||
|
isAutoDispose: false,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String debugGetCreateSourceHash() => _$appStatesHash();
|
||||||
|
|
||||||
|
@$internal
|
||||||
|
@override
|
||||||
|
AppStates create() => AppStates();
|
||||||
|
|
||||||
|
/// {@macro riverpod.override_with_value}
|
||||||
|
Override overrideWithValue(AppState value) {
|
||||||
|
return $ProviderOverride(
|
||||||
|
origin: this,
|
||||||
|
providerOverride: $SyncValueProvider<AppState>(value),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String _$appStatesHash() => r'ef96f10f6fff0f3dd6d3128ebf070ad79cbc8bc9';
|
String _$appStatesHash() => r'ef96f10f6fff0f3dd6d3128ebf070ad79cbc8bc9';
|
||||||
|
|
||||||
/// See also [AppStates].
|
abstract class _$AppStates extends $Notifier<AppState> {
|
||||||
@ProviderFor(AppStates)
|
AppState build();
|
||||||
final appStatesProvider = NotifierProvider<AppStates, AppState>.internal(
|
@$mustCallSuper
|
||||||
AppStates.new,
|
@override
|
||||||
name: r'appStatesProvider',
|
void runBuild() {
|
||||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
final created = build();
|
||||||
? null
|
final ref = this.ref as $Ref<AppState, AppState>;
|
||||||
: _$appStatesHash,
|
final element =
|
||||||
dependencies: null,
|
ref.element
|
||||||
allTransitiveDependencies: null,
|
as $ClassProviderElement<
|
||||||
);
|
AnyNotifier<AppState, AppState>,
|
||||||
|
AppState,
|
||||||
typedef _$AppStates = Notifier<AppState>;
|
Object?,
|
||||||
// ignore_for_file: type=lint
|
Object?
|
||||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
>;
|
||||||
|
element.handleValue(ref, created);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,35 +6,98 @@ part of 'container.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$containerNotifierHash() => r'fea65e66499234b0a59bffff8d69c4ab8c93b2fd';
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint, type=warning
|
||||||
|
|
||||||
/// Copied from Dart SDK
|
@ProviderFor(ContainerNotifier)
|
||||||
class _SystemHash {
|
const containerProvider = ContainerNotifierFamily._();
|
||||||
_SystemHash._();
|
|
||||||
|
|
||||||
static int combine(int hash, int value) {
|
final class ContainerNotifierProvider
|
||||||
// ignore: parameter_assignments
|
extends $NotifierProvider<ContainerNotifier, ContainerState> {
|
||||||
hash = 0x1fffffff & (hash + value);
|
const ContainerNotifierProvider._({
|
||||||
// ignore: parameter_assignments
|
required ContainerNotifierFamily super.from,
|
||||||
hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10));
|
required (SSHClient?, String, String, BuildContext) super.argument,
|
||||||
return hash ^ (hash >> 6);
|
}) : super(
|
||||||
|
retry: null,
|
||||||
|
name: r'containerProvider',
|
||||||
|
isAutoDispose: true,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String debugGetCreateSourceHash() => _$containerNotifierHash();
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return r'containerProvider'
|
||||||
|
''
|
||||||
|
'$argument';
|
||||||
}
|
}
|
||||||
|
|
||||||
static int finish(int hash) {
|
@$internal
|
||||||
// ignore: parameter_assignments
|
@override
|
||||||
hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3));
|
ContainerNotifier create() => ContainerNotifier();
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = hash ^ (hash >> 11);
|
/// {@macro riverpod.override_with_value}
|
||||||
return 0x1fffffff & (hash + ((0x00003fff & hash) << 15));
|
Override overrideWithValue(ContainerState value) {
|
||||||
|
return $ProviderOverride(
|
||||||
|
origin: this,
|
||||||
|
providerOverride: $SyncValueProvider<ContainerState>(value),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) {
|
||||||
|
return other is ContainerNotifierProvider && other.argument == argument;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode {
|
||||||
|
return argument.hashCode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class _$ContainerNotifier
|
String _$containerNotifierHash() => r'fea65e66499234b0a59bffff8d69c4ab8c93b2fd';
|
||||||
extends BuildlessAutoDisposeNotifier<ContainerState> {
|
|
||||||
late final SSHClient? client;
|
final class ContainerNotifierFamily extends $Family
|
||||||
late final String userName;
|
with
|
||||||
late final String hostId;
|
$ClassFamilyOverride<
|
||||||
late final BuildContext context;
|
ContainerNotifier,
|
||||||
|
ContainerState,
|
||||||
|
ContainerState,
|
||||||
|
ContainerState,
|
||||||
|
(SSHClient?, String, String, BuildContext)
|
||||||
|
> {
|
||||||
|
const ContainerNotifierFamily._()
|
||||||
|
: super(
|
||||||
|
retry: null,
|
||||||
|
name: r'containerProvider',
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
isAutoDispose: true,
|
||||||
|
);
|
||||||
|
|
||||||
|
ContainerNotifierProvider call(
|
||||||
|
SSHClient? client,
|
||||||
|
String userName,
|
||||||
|
String hostId,
|
||||||
|
BuildContext context,
|
||||||
|
) => ContainerNotifierProvider._(
|
||||||
|
argument: (client, userName, hostId, context),
|
||||||
|
from: this,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() => r'containerProvider';
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class _$ContainerNotifier extends $Notifier<ContainerState> {
|
||||||
|
late final _$args = ref.$arg as (SSHClient?, String, String, BuildContext);
|
||||||
|
SSHClient? get client => _$args.$1;
|
||||||
|
String get userName => _$args.$2;
|
||||||
|
String get hostId => _$args.$3;
|
||||||
|
BuildContext get context => _$args.$4;
|
||||||
|
|
||||||
ContainerState build(
|
ContainerState build(
|
||||||
SSHClient? client,
|
SSHClient? client,
|
||||||
@@ -42,187 +105,19 @@ abstract class _$ContainerNotifier
|
|||||||
String hostId,
|
String hostId,
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
);
|
);
|
||||||
}
|
@$mustCallSuper
|
||||||
|
|
||||||
/// See also [ContainerNotifier].
|
|
||||||
@ProviderFor(ContainerNotifier)
|
|
||||||
const containerNotifierProvider = ContainerNotifierFamily();
|
|
||||||
|
|
||||||
/// See also [ContainerNotifier].
|
|
||||||
class ContainerNotifierFamily extends Family<ContainerState> {
|
|
||||||
/// See also [ContainerNotifier].
|
|
||||||
const ContainerNotifierFamily();
|
|
||||||
|
|
||||||
/// See also [ContainerNotifier].
|
|
||||||
ContainerNotifierProvider call(
|
|
||||||
SSHClient? client,
|
|
||||||
String userName,
|
|
||||||
String hostId,
|
|
||||||
BuildContext context,
|
|
||||||
) {
|
|
||||||
return ContainerNotifierProvider(client, userName, hostId, context);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
ContainerNotifierProvider getProviderOverride(
|
void runBuild() {
|
||||||
covariant ContainerNotifierProvider provider,
|
final created = build(_$args.$1, _$args.$2, _$args.$3, _$args.$4);
|
||||||
) {
|
final ref = this.ref as $Ref<ContainerState, ContainerState>;
|
||||||
return call(
|
final element =
|
||||||
provider.client,
|
ref.element
|
||||||
provider.userName,
|
as $ClassProviderElement<
|
||||||
provider.hostId,
|
AnyNotifier<ContainerState, ContainerState>,
|
||||||
provider.context,
|
ContainerState,
|
||||||
);
|
Object?,
|
||||||
}
|
Object?
|
||||||
|
>;
|
||||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
element.handleValue(ref, created);
|
||||||
|
|
||||||
@override
|
|
||||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
|
||||||
|
|
||||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
|
||||||
|
|
||||||
@override
|
|
||||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
|
||||||
_allTransitiveDependencies;
|
|
||||||
|
|
||||||
@override
|
|
||||||
String? get name => r'containerNotifierProvider';
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See also [ContainerNotifier].
|
|
||||||
class ContainerNotifierProvider
|
|
||||||
extends AutoDisposeNotifierProviderImpl<ContainerNotifier, ContainerState> {
|
|
||||||
/// See also [ContainerNotifier].
|
|
||||||
ContainerNotifierProvider(
|
|
||||||
SSHClient? client,
|
|
||||||
String userName,
|
|
||||||
String hostId,
|
|
||||||
BuildContext context,
|
|
||||||
) : this._internal(
|
|
||||||
() => ContainerNotifier()
|
|
||||||
..client = client
|
|
||||||
..userName = userName
|
|
||||||
..hostId = hostId
|
|
||||||
..context = context,
|
|
||||||
from: containerNotifierProvider,
|
|
||||||
name: r'containerNotifierProvider',
|
|
||||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
|
||||||
? null
|
|
||||||
: _$containerNotifierHash,
|
|
||||||
dependencies: ContainerNotifierFamily._dependencies,
|
|
||||||
allTransitiveDependencies:
|
|
||||||
ContainerNotifierFamily._allTransitiveDependencies,
|
|
||||||
client: client,
|
|
||||||
userName: userName,
|
|
||||||
hostId: hostId,
|
|
||||||
context: context,
|
|
||||||
);
|
|
||||||
|
|
||||||
ContainerNotifierProvider._internal(
|
|
||||||
super._createNotifier, {
|
|
||||||
required super.name,
|
|
||||||
required super.dependencies,
|
|
||||||
required super.allTransitiveDependencies,
|
|
||||||
required super.debugGetCreateSourceHash,
|
|
||||||
required super.from,
|
|
||||||
required this.client,
|
|
||||||
required this.userName,
|
|
||||||
required this.hostId,
|
|
||||||
required this.context,
|
|
||||||
}) : super.internal();
|
|
||||||
|
|
||||||
final SSHClient? client;
|
|
||||||
final String userName;
|
|
||||||
final String hostId;
|
|
||||||
final BuildContext context;
|
|
||||||
|
|
||||||
@override
|
|
||||||
ContainerState runNotifierBuild(covariant ContainerNotifier notifier) {
|
|
||||||
return notifier.build(client, userName, hostId, context);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Override overrideWith(ContainerNotifier Function() create) {
|
|
||||||
return ProviderOverride(
|
|
||||||
origin: this,
|
|
||||||
override: ContainerNotifierProvider._internal(
|
|
||||||
() => create()
|
|
||||||
..client = client
|
|
||||||
..userName = userName
|
|
||||||
..hostId = hostId
|
|
||||||
..context = context,
|
|
||||||
from: from,
|
|
||||||
name: null,
|
|
||||||
dependencies: null,
|
|
||||||
allTransitiveDependencies: null,
|
|
||||||
debugGetCreateSourceHash: null,
|
|
||||||
client: client,
|
|
||||||
userName: userName,
|
|
||||||
hostId: hostId,
|
|
||||||
context: context,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
AutoDisposeNotifierProviderElement<ContainerNotifier, ContainerState>
|
|
||||||
createElement() {
|
|
||||||
return _ContainerNotifierProviderElement(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
bool operator ==(Object other) {
|
|
||||||
return other is ContainerNotifierProvider &&
|
|
||||||
other.client == client &&
|
|
||||||
other.userName == userName &&
|
|
||||||
other.hostId == hostId &&
|
|
||||||
other.context == context;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
int get hashCode {
|
|
||||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
|
||||||
hash = _SystemHash.combine(hash, client.hashCode);
|
|
||||||
hash = _SystemHash.combine(hash, userName.hashCode);
|
|
||||||
hash = _SystemHash.combine(hash, hostId.hashCode);
|
|
||||||
hash = _SystemHash.combine(hash, context.hashCode);
|
|
||||||
|
|
||||||
return _SystemHash.finish(hash);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
|
||||||
// ignore: unused_element
|
|
||||||
mixin ContainerNotifierRef on AutoDisposeNotifierProviderRef<ContainerState> {
|
|
||||||
/// The parameter `client` of this provider.
|
|
||||||
SSHClient? get client;
|
|
||||||
|
|
||||||
/// The parameter `userName` of this provider.
|
|
||||||
String get userName;
|
|
||||||
|
|
||||||
/// The parameter `hostId` of this provider.
|
|
||||||
String get hostId;
|
|
||||||
|
|
||||||
/// The parameter `context` of this provider.
|
|
||||||
BuildContext get context;
|
|
||||||
}
|
|
||||||
|
|
||||||
class _ContainerNotifierProviderElement
|
|
||||||
extends
|
|
||||||
AutoDisposeNotifierProviderElement<ContainerNotifier, ContainerState>
|
|
||||||
with ContainerNotifierRef {
|
|
||||||
_ContainerNotifierProviderElement(super.provider);
|
|
||||||
|
|
||||||
@override
|
|
||||||
SSHClient? get client => (origin as ContainerNotifierProvider).client;
|
|
||||||
@override
|
|
||||||
String get userName => (origin as ContainerNotifierProvider).userName;
|
|
||||||
@override
|
|
||||||
String get hostId => (origin as ContainerNotifierProvider).hostId;
|
|
||||||
@override
|
|
||||||
BuildContext get context => (origin as ContainerNotifierProvider).context;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ignore_for_file: type=lint
|
|
||||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
|
||||||
|
|||||||
@@ -6,22 +6,59 @@ part of 'private_key.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint, type=warning
|
||||||
|
|
||||||
|
@ProviderFor(PrivateKeyNotifier)
|
||||||
|
const privateKeyProvider = PrivateKeyNotifierProvider._();
|
||||||
|
|
||||||
|
final class PrivateKeyNotifierProvider
|
||||||
|
extends $NotifierProvider<PrivateKeyNotifier, PrivateKeyState> {
|
||||||
|
const PrivateKeyNotifierProvider._()
|
||||||
|
: super(
|
||||||
|
from: null,
|
||||||
|
argument: null,
|
||||||
|
retry: null,
|
||||||
|
name: r'privateKeyProvider',
|
||||||
|
isAutoDispose: false,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String debugGetCreateSourceHash() => _$privateKeyNotifierHash();
|
||||||
|
|
||||||
|
@$internal
|
||||||
|
@override
|
||||||
|
PrivateKeyNotifier create() => PrivateKeyNotifier();
|
||||||
|
|
||||||
|
/// {@macro riverpod.override_with_value}
|
||||||
|
Override overrideWithValue(PrivateKeyState value) {
|
||||||
|
return $ProviderOverride(
|
||||||
|
origin: this,
|
||||||
|
providerOverride: $SyncValueProvider<PrivateKeyState>(value),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String _$privateKeyNotifierHash() =>
|
String _$privateKeyNotifierHash() =>
|
||||||
r'12edd05dca29d1cbc9e2a3e047c3d417d22f7bb7';
|
r'12edd05dca29d1cbc9e2a3e047c3d417d22f7bb7';
|
||||||
|
|
||||||
/// See also [PrivateKeyNotifier].
|
abstract class _$PrivateKeyNotifier extends $Notifier<PrivateKeyState> {
|
||||||
@ProviderFor(PrivateKeyNotifier)
|
PrivateKeyState build();
|
||||||
final privateKeyNotifierProvider =
|
@$mustCallSuper
|
||||||
NotifierProvider<PrivateKeyNotifier, PrivateKeyState>.internal(
|
@override
|
||||||
PrivateKeyNotifier.new,
|
void runBuild() {
|
||||||
name: r'privateKeyNotifierProvider',
|
final created = build();
|
||||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
final ref = this.ref as $Ref<PrivateKeyState, PrivateKeyState>;
|
||||||
? null
|
final element =
|
||||||
: _$privateKeyNotifierHash,
|
ref.element
|
||||||
dependencies: null,
|
as $ClassProviderElement<
|
||||||
allTransitiveDependencies: null,
|
AnyNotifier<PrivateKeyState, PrivateKeyState>,
|
||||||
);
|
PrivateKeyState,
|
||||||
|
Object?,
|
||||||
typedef _$PrivateKeyNotifier = Notifier<PrivateKeyState>;
|
Object?
|
||||||
// ignore_for_file: type=lint
|
>;
|
||||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
element.handleValue(ref, created);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
import 'package:flutter_riverpod/misc.dart';
|
||||||
|
|
||||||
import 'package:server_box/data/provider/app.dart';
|
import 'package:server_box/data/provider/app.dart';
|
||||||
import 'package:server_box/data/provider/private_key.dart';
|
import 'package:server_box/data/provider/private_key.dart';
|
||||||
@@ -10,7 +11,7 @@ import 'package:server_box/data/provider/snippet.dart';
|
|||||||
/// ref.useNotifier, ref.readProvider, ref.watchProvider
|
/// ref.useNotifier, ref.readProvider, ref.watchProvider
|
||||||
///
|
///
|
||||||
/// Usage:
|
/// Usage:
|
||||||
/// - `providers.read.server` -> `ref.read(serversNotifierProvider)`
|
/// - `providers.read.server` -> `ref.read(serversProvider)`
|
||||||
/// - `providers.use.snippet` -> `ref.read(snippetsNotifierProvider.notifier)`
|
/// - `providers.use.snippet` -> `ref.read(snippetsNotifierProvider.notifier)`
|
||||||
|
|
||||||
extension RiverpodNotifiers on ConsumerState {
|
extension RiverpodNotifiers on ConsumerState {
|
||||||
@@ -45,11 +46,11 @@ final class ReadMyProvider {
|
|||||||
T call<T>(ProviderBase<T> provider) => ref.read(provider);
|
T call<T>(ProviderBase<T> provider) => ref.read(provider);
|
||||||
|
|
||||||
// Specific provider getters
|
// Specific provider getters
|
||||||
ServersState get server => ref.read(serversNotifierProvider);
|
ServersState get server => ref.read(serversProvider);
|
||||||
SnippetState get snippet => ref.read(snippetNotifierProvider);
|
SnippetState get snippet => ref.read(snippetProvider);
|
||||||
AppState get app => ref.read(appStatesProvider);
|
AppState get app => ref.read(appStatesProvider);
|
||||||
PrivateKeyState get privateKey => ref.read(privateKeyNotifierProvider);
|
PrivateKeyState get privateKey => ref.read(privateKeyProvider);
|
||||||
SftpState get sftp => ref.read(sftpNotifierProvider);
|
SftpState get sftp => ref.read(sftpProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
final class WatchMyProvider {
|
final class WatchMyProvider {
|
||||||
@@ -59,11 +60,11 @@ final class WatchMyProvider {
|
|||||||
T call<T>(ProviderBase<T> provider) => ref.watch(provider);
|
T call<T>(ProviderBase<T> provider) => ref.watch(provider);
|
||||||
|
|
||||||
// Specific provider getters
|
// Specific provider getters
|
||||||
ServersState get server => ref.watch(serversNotifierProvider);
|
ServersState get server => ref.watch(serversProvider);
|
||||||
SnippetState get snippet => ref.watch(snippetNotifierProvider);
|
SnippetState get snippet => ref.watch(snippetProvider);
|
||||||
AppState get app => ref.watch(appStatesProvider);
|
AppState get app => ref.watch(appStatesProvider);
|
||||||
PrivateKeyState get privateKey => ref.watch(privateKeyNotifierProvider);
|
PrivateKeyState get privateKey => ref.watch(privateKeyProvider);
|
||||||
SftpState get sftp => ref.watch(sftpNotifierProvider);
|
SftpState get sftp => ref.watch(sftpProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
final class UseNotifierMyProvider {
|
final class UseNotifierMyProvider {
|
||||||
@@ -74,9 +75,9 @@ final class UseNotifierMyProvider {
|
|||||||
ref.read(provider.notifier);
|
ref.read(provider.notifier);
|
||||||
|
|
||||||
// Specific provider notifier getters
|
// Specific provider notifier getters
|
||||||
ServersNotifier get server => ref.read(serversNotifierProvider.notifier);
|
ServersNotifier get server => ref.read(serversProvider.notifier);
|
||||||
SnippetNotifier get snippet => ref.read(snippetNotifierProvider.notifier);
|
SnippetNotifier get snippet => ref.read(snippetProvider.notifier);
|
||||||
AppStates get app => ref.read(appStatesProvider.notifier);
|
AppStates get app => ref.read(appStatesProvider.notifier);
|
||||||
PrivateKeyNotifier get privateKey => ref.read(privateKeyNotifierProvider.notifier);
|
PrivateKeyNotifier get privateKey => ref.read(privateKeyProvider.notifier);
|
||||||
SftpNotifier get sftp => ref.read(sftpNotifierProvider.notifier);
|
SftpNotifier get sftp => ref.read(sftpProvider.notifier);
|
||||||
}
|
}
|
||||||
@@ -45,7 +45,7 @@ class PveNotifier extends _$PveNotifier {
|
|||||||
@override
|
@override
|
||||||
PveState build(Spi spiParam) {
|
PveState build(Spi spiParam) {
|
||||||
spi = spiParam;
|
spi = spiParam;
|
||||||
final serverState = ref.watch(serverNotifierProvider(spi.id));
|
final serverState = ref.watch(serverProvider(spi.id));
|
||||||
final client = serverState.client;
|
final client = serverState.client;
|
||||||
if (client == null) {
|
if (client == null) {
|
||||||
return const PveState(error: PveErr(type: PveErrType.net, message: 'Server client is null'));
|
return const PveState(error: PveErr(type: PveErrType.net, message: 'Server client is null'));
|
||||||
|
|||||||
@@ -6,155 +6,96 @@ part of 'pve.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$pveNotifierHash() => r'b5da7240db1b9ee7d61f238cebca45821b7a3445';
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint, type=warning
|
||||||
|
|
||||||
/// Copied from Dart SDK
|
|
||||||
class _SystemHash {
|
|
||||||
_SystemHash._();
|
|
||||||
|
|
||||||
static int combine(int hash, int value) {
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = 0x1fffffff & (hash + value);
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10));
|
|
||||||
return hash ^ (hash >> 6);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int finish(int hash) {
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3));
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = hash ^ (hash >> 11);
|
|
||||||
return 0x1fffffff & (hash + ((0x00003fff & hash) << 15));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class _$PveNotifier extends BuildlessAutoDisposeNotifier<PveState> {
|
|
||||||
late final Spi spiParam;
|
|
||||||
|
|
||||||
PveState build(Spi spiParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See also [PveNotifier].
|
|
||||||
@ProviderFor(PveNotifier)
|
@ProviderFor(PveNotifier)
|
||||||
const pveNotifierProvider = PveNotifierFamily();
|
const pveProvider = PveNotifierFamily._();
|
||||||
|
|
||||||
/// See also [PveNotifier].
|
final class PveNotifierProvider
|
||||||
class PveNotifierFamily extends Family<PveState> {
|
extends $NotifierProvider<PveNotifier, PveState> {
|
||||||
/// See also [PveNotifier].
|
const PveNotifierProvider._({
|
||||||
const PveNotifierFamily();
|
required PveNotifierFamily super.from,
|
||||||
|
required Spi super.argument,
|
||||||
|
}) : super(
|
||||||
|
retry: null,
|
||||||
|
name: r'pveProvider',
|
||||||
|
isAutoDispose: true,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
/// See also [PveNotifier].
|
@override
|
||||||
PveNotifierProvider call(Spi spiParam) {
|
String debugGetCreateSourceHash() => _$pveNotifierHash();
|
||||||
return PveNotifierProvider(spiParam);
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return r'pveProvider'
|
||||||
|
''
|
||||||
|
'($argument)';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@$internal
|
||||||
@override
|
@override
|
||||||
PveNotifierProvider getProviderOverride(
|
PveNotifier create() => PveNotifier();
|
||||||
covariant PveNotifierProvider provider,
|
|
||||||
) {
|
|
||||||
return call(provider.spiParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
/// {@macro riverpod.override_with_value}
|
||||||
|
Override overrideWithValue(PveState value) {
|
||||||
@override
|
return $ProviderOverride(
|
||||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
|
||||||
|
|
||||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
|
||||||
|
|
||||||
@override
|
|
||||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
|
||||||
_allTransitiveDependencies;
|
|
||||||
|
|
||||||
@override
|
|
||||||
String? get name => r'pveNotifierProvider';
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See also [PveNotifier].
|
|
||||||
class PveNotifierProvider
|
|
||||||
extends AutoDisposeNotifierProviderImpl<PveNotifier, PveState> {
|
|
||||||
/// See also [PveNotifier].
|
|
||||||
PveNotifierProvider(Spi spiParam)
|
|
||||||
: this._internal(
|
|
||||||
() => PveNotifier()..spiParam = spiParam,
|
|
||||||
from: pveNotifierProvider,
|
|
||||||
name: r'pveNotifierProvider',
|
|
||||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
|
||||||
? null
|
|
||||||
: _$pveNotifierHash,
|
|
||||||
dependencies: PveNotifierFamily._dependencies,
|
|
||||||
allTransitiveDependencies: PveNotifierFamily._allTransitiveDependencies,
|
|
||||||
spiParam: spiParam,
|
|
||||||
);
|
|
||||||
|
|
||||||
PveNotifierProvider._internal(
|
|
||||||
super._createNotifier, {
|
|
||||||
required super.name,
|
|
||||||
required super.dependencies,
|
|
||||||
required super.allTransitiveDependencies,
|
|
||||||
required super.debugGetCreateSourceHash,
|
|
||||||
required super.from,
|
|
||||||
required this.spiParam,
|
|
||||||
}) : super.internal();
|
|
||||||
|
|
||||||
final Spi spiParam;
|
|
||||||
|
|
||||||
@override
|
|
||||||
PveState runNotifierBuild(covariant PveNotifier notifier) {
|
|
||||||
return notifier.build(spiParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Override overrideWith(PveNotifier Function() create) {
|
|
||||||
return ProviderOverride(
|
|
||||||
origin: this,
|
origin: this,
|
||||||
override: PveNotifierProvider._internal(
|
providerOverride: $SyncValueProvider<PveState>(value),
|
||||||
() => create()..spiParam = spiParam,
|
|
||||||
from: from,
|
|
||||||
name: null,
|
|
||||||
dependencies: null,
|
|
||||||
allTransitiveDependencies: null,
|
|
||||||
debugGetCreateSourceHash: null,
|
|
||||||
spiParam: spiParam,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
AutoDisposeNotifierProviderElement<PveNotifier, PveState> createElement() {
|
|
||||||
return _PveNotifierProviderElement(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) {
|
bool operator ==(Object other) {
|
||||||
return other is PveNotifierProvider && other.spiParam == spiParam;
|
return other is PveNotifierProvider && other.argument == argument;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get hashCode {
|
int get hashCode {
|
||||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
return argument.hashCode;
|
||||||
hash = _SystemHash.combine(hash, spiParam.hashCode);
|
|
||||||
|
|
||||||
return _SystemHash.finish(hash);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
String _$pveNotifierHash() => r'b5da7240db1b9ee7d61f238cebca45821b7a3445';
|
||||||
// ignore: unused_element
|
|
||||||
mixin PveNotifierRef on AutoDisposeNotifierProviderRef<PveState> {
|
|
||||||
/// The parameter `spiParam` of this provider.
|
|
||||||
Spi get spiParam;
|
|
||||||
}
|
|
||||||
|
|
||||||
class _PveNotifierProviderElement
|
final class PveNotifierFamily extends $Family
|
||||||
extends AutoDisposeNotifierProviderElement<PveNotifier, PveState>
|
with $ClassFamilyOverride<PveNotifier, PveState, PveState, PveState, Spi> {
|
||||||
with PveNotifierRef {
|
const PveNotifierFamily._()
|
||||||
_PveNotifierProviderElement(super.provider);
|
: super(
|
||||||
|
retry: null,
|
||||||
|
name: r'pveProvider',
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
isAutoDispose: true,
|
||||||
|
);
|
||||||
|
|
||||||
|
PveNotifierProvider call(Spi spiParam) =>
|
||||||
|
PveNotifierProvider._(argument: spiParam, from: this);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Spi get spiParam => (origin as PveNotifierProvider).spiParam;
|
String toString() => r'pveProvider';
|
||||||
}
|
}
|
||||||
|
|
||||||
// ignore_for_file: type=lint
|
abstract class _$PveNotifier extends $Notifier<PveState> {
|
||||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
late final _$args = ref.$arg as Spi;
|
||||||
|
Spi get spiParam => _$args;
|
||||||
|
|
||||||
|
PveState build(Spi spiParam);
|
||||||
|
@$mustCallSuper
|
||||||
|
@override
|
||||||
|
void runBuild() {
|
||||||
|
final created = build(_$args);
|
||||||
|
final ref = this.ref as $Ref<PveState, PveState>;
|
||||||
|
final element =
|
||||||
|
ref.element
|
||||||
|
as $ClassProviderElement<
|
||||||
|
AnyNotifier<PveState, PveState>,
|
||||||
|
PveState,
|
||||||
|
Object?,
|
||||||
|
Object?
|
||||||
|
>;
|
||||||
|
element.handleValue(ref, created);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ class ServersNotifier extends _$ServersNotifier {
|
|||||||
if (spi != null) {
|
if (spi != null) {
|
||||||
final newManualDisconnected = Set<String>.from(state.manualDisconnectedIds)..remove(spi.id);
|
final newManualDisconnected = Set<String>.from(state.manualDisconnectedIds)..remove(spi.id);
|
||||||
state = state.copyWith(manualDisconnectedIds: newManualDisconnected);
|
state = state.copyWith(manualDisconnectedIds: newManualDisconnected);
|
||||||
final serverNotifier = ref.read(serverNotifierProvider(spi.id).notifier);
|
final serverNotifier = ref.read(serverProvider(spi.id).notifier);
|
||||||
await serverNotifier.refresh();
|
await serverNotifier.refresh();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -109,19 +109,19 @@ class ServersNotifier extends _$ServersNotifier {
|
|||||||
final spi = entry.value;
|
final spi = entry.value;
|
||||||
|
|
||||||
if (onlyFailed) {
|
if (onlyFailed) {
|
||||||
final serverState = ref.read(serverNotifierProvider(serverId));
|
final serverState = ref.read(serverProvider(serverId));
|
||||||
if (serverState.conn != ServerConn.failed) return;
|
if (serverState.conn != ServerConn.failed) return;
|
||||||
TryLimiter.reset(serverId);
|
TryLimiter.reset(serverId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state.manualDisconnectedIds.contains(serverId)) return;
|
if (state.manualDisconnectedIds.contains(serverId)) return;
|
||||||
|
|
||||||
final serverState = ref.read(serverNotifierProvider(serverId));
|
final serverState = ref.read(serverProvider(serverId));
|
||||||
if (serverState.conn == ServerConn.disconnected && !spi.autoConnect) {
|
if (serverState.conn == ServerConn.disconnected && !spi.autoConnect) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final serverNotifier = ref.read(serverNotifierProvider(serverId).notifier);
|
final serverNotifier = ref.read(serverProvider(serverId).notifier);
|
||||||
await serverNotifier.refresh();
|
await serverNotifier.refresh();
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
@@ -153,7 +153,7 @@ class ServersNotifier extends _$ServersNotifier {
|
|||||||
|
|
||||||
void setDisconnected() {
|
void setDisconnected() {
|
||||||
for (final serverId in state.servers.keys) {
|
for (final serverId in state.servers.keys) {
|
||||||
final serverNotifier = ref.read(serverNotifierProvider(serverId).notifier);
|
final serverNotifier = ref.read(serverProvider(serverId).notifier);
|
||||||
serverNotifier.updateConnection(ServerConn.disconnected);
|
serverNotifier.updateConnection(ServerConn.disconnected);
|
||||||
|
|
||||||
// Update SSH session status to disconnected
|
// Update SSH session status to disconnected
|
||||||
@@ -180,7 +180,7 @@ class ServersNotifier extends _$ServersNotifier {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final serverNotifier = ref.read(serverNotifierProvider(id).notifier);
|
final serverNotifier = ref.read(serverProvider(id).notifier);
|
||||||
serverNotifier.closeConnection();
|
serverNotifier.closeConnection();
|
||||||
|
|
||||||
final newManualDisconnected = Set<String>.from(state.manualDisconnectedIds)..add(id);
|
final newManualDisconnected = Set<String>.from(state.manualDisconnectedIds)..add(id);
|
||||||
@@ -259,7 +259,7 @@ class ServersNotifier extends _$ServersNotifier {
|
|||||||
} else {
|
} else {
|
||||||
newServers[old.id] = newSpi;
|
newServers[old.id] = newSpi;
|
||||||
// Update SPI in the corresponding IndividualServerNotifier
|
// Update SPI in the corresponding IndividualServerNotifier
|
||||||
final serverNotifier = ref.read(serverNotifierProvider(old.id).notifier);
|
final serverNotifier = ref.read(serverProvider(old.id).notifier);
|
||||||
serverNotifier.updateSpi(newSpi);
|
serverNotifier.updateSpi(newSpi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,21 +6,58 @@ part of 'all.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint, type=warning
|
||||||
|
|
||||||
|
@ProviderFor(ServersNotifier)
|
||||||
|
const serversProvider = ServersNotifierProvider._();
|
||||||
|
|
||||||
|
final class ServersNotifierProvider
|
||||||
|
extends $NotifierProvider<ServersNotifier, ServersState> {
|
||||||
|
const ServersNotifierProvider._()
|
||||||
|
: super(
|
||||||
|
from: null,
|
||||||
|
argument: null,
|
||||||
|
retry: null,
|
||||||
|
name: r'serversProvider',
|
||||||
|
isAutoDispose: false,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String debugGetCreateSourceHash() => _$serversNotifierHash();
|
||||||
|
|
||||||
|
@$internal
|
||||||
|
@override
|
||||||
|
ServersNotifier create() => ServersNotifier();
|
||||||
|
|
||||||
|
/// {@macro riverpod.override_with_value}
|
||||||
|
Override overrideWithValue(ServersState value) {
|
||||||
|
return $ProviderOverride(
|
||||||
|
origin: this,
|
||||||
|
providerOverride: $SyncValueProvider<ServersState>(value),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String _$serversNotifierHash() => r'2b29ad3027a203c7a20bfd0142d384a503cbbcaa';
|
String _$serversNotifierHash() => r'2b29ad3027a203c7a20bfd0142d384a503cbbcaa';
|
||||||
|
|
||||||
/// See also [ServersNotifier].
|
abstract class _$ServersNotifier extends $Notifier<ServersState> {
|
||||||
@ProviderFor(ServersNotifier)
|
ServersState build();
|
||||||
final serversNotifierProvider =
|
@$mustCallSuper
|
||||||
NotifierProvider<ServersNotifier, ServersState>.internal(
|
@override
|
||||||
ServersNotifier.new,
|
void runBuild() {
|
||||||
name: r'serversNotifierProvider',
|
final created = build();
|
||||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
final ref = this.ref as $Ref<ServersState, ServersState>;
|
||||||
? null
|
final element =
|
||||||
: _$serversNotifierHash,
|
ref.element
|
||||||
dependencies: null,
|
as $ClassProviderElement<
|
||||||
allTransitiveDependencies: null,
|
AnyNotifier<ServersState, ServersState>,
|
||||||
);
|
ServersState,
|
||||||
|
Object?,
|
||||||
typedef _$ServersNotifier = Notifier<ServersState>;
|
Object?
|
||||||
// ignore_for_file: type=lint
|
>;
|
||||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
element.handleValue(ref, created);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ abstract class ServerState with _$ServerState {
|
|||||||
class ServerNotifier extends _$ServerNotifier {
|
class ServerNotifier extends _$ServerNotifier {
|
||||||
@override
|
@override
|
||||||
ServerState build(String serverId) {
|
ServerState build(String serverId) {
|
||||||
final serverNotifier = ref.read(serversNotifierProvider);
|
final serverNotifier = ref.read(serversProvider);
|
||||||
final spi = serverNotifier.servers[serverId];
|
final spi = serverNotifier.servers[serverId];
|
||||||
if (spi == null) {
|
if (spi == null) {
|
||||||
throw StateError('Server $serverId not found');
|
throw StateError('Server $serverId not found');
|
||||||
@@ -160,7 +160,7 @@ class ServerNotifier extends _$ServerNotifier {
|
|||||||
id: sessionId,
|
id: sessionId,
|
||||||
spi: spi,
|
spi: spi,
|
||||||
startTimeMs: time1.millisecondsSinceEpoch,
|
startTimeMs: time1.millisecondsSinceEpoch,
|
||||||
disconnect: () => ref.read(serversNotifierProvider.notifier).closeOneServer(spi.id),
|
disconnect: () => ref.read(serversProvider.notifier).closeOneServer(spi.id),
|
||||||
status: TermSessionStatus.connecting,
|
status: TermSessionStatus.connecting,
|
||||||
);
|
);
|
||||||
TermSessionManager.setActive(sessionId, hasTerminal: false);
|
TermSessionManager.setActive(sessionId, hasTerminal: false);
|
||||||
|
|||||||
@@ -6,156 +6,103 @@ part of 'single.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$serverNotifierHash() => r'd9724fbe6d132f2e2ea4dfa5af73aeab168e1c57';
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint, type=warning
|
||||||
|
|
||||||
/// Copied from Dart SDK
|
|
||||||
class _SystemHash {
|
|
||||||
_SystemHash._();
|
|
||||||
|
|
||||||
static int combine(int hash, int value) {
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = 0x1fffffff & (hash + value);
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10));
|
|
||||||
return hash ^ (hash >> 6);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int finish(int hash) {
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3));
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = hash ^ (hash >> 11);
|
|
||||||
return 0x1fffffff & (hash + ((0x00003fff & hash) << 15));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class _$ServerNotifier extends BuildlessNotifier<ServerState> {
|
|
||||||
late final String serverId;
|
|
||||||
|
|
||||||
ServerState build(String serverId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See also [ServerNotifier].
|
|
||||||
@ProviderFor(ServerNotifier)
|
@ProviderFor(ServerNotifier)
|
||||||
const serverNotifierProvider = ServerNotifierFamily();
|
const serverProvider = ServerNotifierFamily._();
|
||||||
|
|
||||||
/// See also [ServerNotifier].
|
final class ServerNotifierProvider
|
||||||
class ServerNotifierFamily extends Family<ServerState> {
|
extends $NotifierProvider<ServerNotifier, ServerState> {
|
||||||
/// See also [ServerNotifier].
|
const ServerNotifierProvider._({
|
||||||
const ServerNotifierFamily();
|
required ServerNotifierFamily super.from,
|
||||||
|
required String super.argument,
|
||||||
|
}) : super(
|
||||||
|
retry: null,
|
||||||
|
name: r'serverProvider',
|
||||||
|
isAutoDispose: false,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
/// See also [ServerNotifier].
|
@override
|
||||||
ServerNotifierProvider call(String serverId) {
|
String debugGetCreateSourceHash() => _$serverNotifierHash();
|
||||||
return ServerNotifierProvider(serverId);
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return r'serverProvider'
|
||||||
|
''
|
||||||
|
'($argument)';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@$internal
|
||||||
@override
|
@override
|
||||||
ServerNotifierProvider getProviderOverride(
|
ServerNotifier create() => ServerNotifier();
|
||||||
covariant ServerNotifierProvider provider,
|
|
||||||
) {
|
|
||||||
return call(provider.serverId);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
/// {@macro riverpod.override_with_value}
|
||||||
|
Override overrideWithValue(ServerState value) {
|
||||||
@override
|
return $ProviderOverride(
|
||||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
|
||||||
|
|
||||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
|
||||||
|
|
||||||
@override
|
|
||||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
|
||||||
_allTransitiveDependencies;
|
|
||||||
|
|
||||||
@override
|
|
||||||
String? get name => r'serverNotifierProvider';
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See also [ServerNotifier].
|
|
||||||
class ServerNotifierProvider
|
|
||||||
extends NotifierProviderImpl<ServerNotifier, ServerState> {
|
|
||||||
/// See also [ServerNotifier].
|
|
||||||
ServerNotifierProvider(String serverId)
|
|
||||||
: this._internal(
|
|
||||||
() => ServerNotifier()..serverId = serverId,
|
|
||||||
from: serverNotifierProvider,
|
|
||||||
name: r'serverNotifierProvider',
|
|
||||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
|
||||||
? null
|
|
||||||
: _$serverNotifierHash,
|
|
||||||
dependencies: ServerNotifierFamily._dependencies,
|
|
||||||
allTransitiveDependencies:
|
|
||||||
ServerNotifierFamily._allTransitiveDependencies,
|
|
||||||
serverId: serverId,
|
|
||||||
);
|
|
||||||
|
|
||||||
ServerNotifierProvider._internal(
|
|
||||||
super._createNotifier, {
|
|
||||||
required super.name,
|
|
||||||
required super.dependencies,
|
|
||||||
required super.allTransitiveDependencies,
|
|
||||||
required super.debugGetCreateSourceHash,
|
|
||||||
required super.from,
|
|
||||||
required this.serverId,
|
|
||||||
}) : super.internal();
|
|
||||||
|
|
||||||
final String serverId;
|
|
||||||
|
|
||||||
@override
|
|
||||||
ServerState runNotifierBuild(covariant ServerNotifier notifier) {
|
|
||||||
return notifier.build(serverId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Override overrideWith(ServerNotifier Function() create) {
|
|
||||||
return ProviderOverride(
|
|
||||||
origin: this,
|
origin: this,
|
||||||
override: ServerNotifierProvider._internal(
|
providerOverride: $SyncValueProvider<ServerState>(value),
|
||||||
() => create()..serverId = serverId,
|
|
||||||
from: from,
|
|
||||||
name: null,
|
|
||||||
dependencies: null,
|
|
||||||
allTransitiveDependencies: null,
|
|
||||||
debugGetCreateSourceHash: null,
|
|
||||||
serverId: serverId,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
NotifierProviderElement<ServerNotifier, ServerState> createElement() {
|
|
||||||
return _ServerNotifierProviderElement(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) {
|
bool operator ==(Object other) {
|
||||||
return other is ServerNotifierProvider && other.serverId == serverId;
|
return other is ServerNotifierProvider && other.argument == argument;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get hashCode {
|
int get hashCode {
|
||||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
return argument.hashCode;
|
||||||
hash = _SystemHash.combine(hash, serverId.hashCode);
|
|
||||||
|
|
||||||
return _SystemHash.finish(hash);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
String _$serverNotifierHash() => r'd9724fbe6d132f2e2ea4dfa5af73aeab168e1c57';
|
||||||
// ignore: unused_element
|
|
||||||
mixin ServerNotifierRef on NotifierProviderRef<ServerState> {
|
|
||||||
/// The parameter `serverId` of this provider.
|
|
||||||
String get serverId;
|
|
||||||
}
|
|
||||||
|
|
||||||
class _ServerNotifierProviderElement
|
final class ServerNotifierFamily extends $Family
|
||||||
extends NotifierProviderElement<ServerNotifier, ServerState>
|
with
|
||||||
with ServerNotifierRef {
|
$ClassFamilyOverride<
|
||||||
_ServerNotifierProviderElement(super.provider);
|
ServerNotifier,
|
||||||
|
ServerState,
|
||||||
|
ServerState,
|
||||||
|
ServerState,
|
||||||
|
String
|
||||||
|
> {
|
||||||
|
const ServerNotifierFamily._()
|
||||||
|
: super(
|
||||||
|
retry: null,
|
||||||
|
name: r'serverProvider',
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
isAutoDispose: false,
|
||||||
|
);
|
||||||
|
|
||||||
|
ServerNotifierProvider call(String serverId) =>
|
||||||
|
ServerNotifierProvider._(argument: serverId, from: this);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get serverId => (origin as ServerNotifierProvider).serverId;
|
String toString() => r'serverProvider';
|
||||||
}
|
}
|
||||||
|
|
||||||
// ignore_for_file: type=lint
|
abstract class _$ServerNotifier extends $Notifier<ServerState> {
|
||||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
late final _$args = ref.$arg as String;
|
||||||
|
String get serverId => _$args;
|
||||||
|
|
||||||
|
ServerState build(String serverId);
|
||||||
|
@$mustCallSuper
|
||||||
|
@override
|
||||||
|
void runBuild() {
|
||||||
|
final created = build(_$args);
|
||||||
|
final ref = this.ref as $Ref<ServerState, ServerState>;
|
||||||
|
final element =
|
||||||
|
ref.element
|
||||||
|
as $ClassProviderElement<
|
||||||
|
AnyNotifier<ServerState, ServerState>,
|
||||||
|
ServerState,
|
||||||
|
Object?,
|
||||||
|
Object?
|
||||||
|
>;
|
||||||
|
element.handleValue(ref, created);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,20 +6,58 @@ part of 'sftp.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint, type=warning
|
||||||
|
|
||||||
|
@ProviderFor(SftpNotifier)
|
||||||
|
const sftpProvider = SftpNotifierProvider._();
|
||||||
|
|
||||||
|
final class SftpNotifierProvider
|
||||||
|
extends $NotifierProvider<SftpNotifier, SftpState> {
|
||||||
|
const SftpNotifierProvider._()
|
||||||
|
: super(
|
||||||
|
from: null,
|
||||||
|
argument: null,
|
||||||
|
retry: null,
|
||||||
|
name: r'sftpProvider',
|
||||||
|
isAutoDispose: false,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String debugGetCreateSourceHash() => _$sftpNotifierHash();
|
||||||
|
|
||||||
|
@$internal
|
||||||
|
@override
|
||||||
|
SftpNotifier create() => SftpNotifier();
|
||||||
|
|
||||||
|
/// {@macro riverpod.override_with_value}
|
||||||
|
Override overrideWithValue(SftpState value) {
|
||||||
|
return $ProviderOverride(
|
||||||
|
origin: this,
|
||||||
|
providerOverride: $SyncValueProvider<SftpState>(value),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String _$sftpNotifierHash() => r'f8412a4bd1f2bc5919ec31a3eba1c27e9a578f41';
|
String _$sftpNotifierHash() => r'f8412a4bd1f2bc5919ec31a3eba1c27e9a578f41';
|
||||||
|
|
||||||
/// See also [SftpNotifier].
|
abstract class _$SftpNotifier extends $Notifier<SftpState> {
|
||||||
@ProviderFor(SftpNotifier)
|
SftpState build();
|
||||||
final sftpNotifierProvider = NotifierProvider<SftpNotifier, SftpState>.internal(
|
@$mustCallSuper
|
||||||
SftpNotifier.new,
|
@override
|
||||||
name: r'sftpNotifierProvider',
|
void runBuild() {
|
||||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
final created = build();
|
||||||
? null
|
final ref = this.ref as $Ref<SftpState, SftpState>;
|
||||||
: _$sftpNotifierHash,
|
final element =
|
||||||
dependencies: null,
|
ref.element
|
||||||
allTransitiveDependencies: null,
|
as $ClassProviderElement<
|
||||||
);
|
AnyNotifier<SftpState, SftpState>,
|
||||||
|
SftpState,
|
||||||
typedef _$SftpNotifier = Notifier<SftpState>;
|
Object?,
|
||||||
// ignore_for_file: type=lint
|
Object?
|
||||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
>;
|
||||||
|
element.handleValue(ref, created);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,21 +6,58 @@ part of 'snippet.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint, type=warning
|
||||||
|
|
||||||
|
@ProviderFor(SnippetNotifier)
|
||||||
|
const snippetProvider = SnippetNotifierProvider._();
|
||||||
|
|
||||||
|
final class SnippetNotifierProvider
|
||||||
|
extends $NotifierProvider<SnippetNotifier, SnippetState> {
|
||||||
|
const SnippetNotifierProvider._()
|
||||||
|
: super(
|
||||||
|
from: null,
|
||||||
|
argument: null,
|
||||||
|
retry: null,
|
||||||
|
name: r'snippetProvider',
|
||||||
|
isAutoDispose: false,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String debugGetCreateSourceHash() => _$snippetNotifierHash();
|
||||||
|
|
||||||
|
@$internal
|
||||||
|
@override
|
||||||
|
SnippetNotifier create() => SnippetNotifier();
|
||||||
|
|
||||||
|
/// {@macro riverpod.override_with_value}
|
||||||
|
Override overrideWithValue(SnippetState value) {
|
||||||
|
return $ProviderOverride(
|
||||||
|
origin: this,
|
||||||
|
providerOverride: $SyncValueProvider<SnippetState>(value),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String _$snippetNotifierHash() => r'8285c7edf905a4aaa41cd8b65b0a6755c8b97fc9';
|
String _$snippetNotifierHash() => r'8285c7edf905a4aaa41cd8b65b0a6755c8b97fc9';
|
||||||
|
|
||||||
/// See also [SnippetNotifier].
|
abstract class _$SnippetNotifier extends $Notifier<SnippetState> {
|
||||||
@ProviderFor(SnippetNotifier)
|
SnippetState build();
|
||||||
final snippetNotifierProvider =
|
@$mustCallSuper
|
||||||
NotifierProvider<SnippetNotifier, SnippetState>.internal(
|
@override
|
||||||
SnippetNotifier.new,
|
void runBuild() {
|
||||||
name: r'snippetNotifierProvider',
|
final created = build();
|
||||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
final ref = this.ref as $Ref<SnippetState, SnippetState>;
|
||||||
? null
|
final element =
|
||||||
: _$snippetNotifierHash,
|
ref.element
|
||||||
dependencies: null,
|
as $ClassProviderElement<
|
||||||
allTransitiveDependencies: null,
|
AnyNotifier<SnippetState, SnippetState>,
|
||||||
);
|
SnippetState,
|
||||||
|
Object?,
|
||||||
typedef _$SnippetNotifier = Notifier<SnippetState>;
|
Object?
|
||||||
// ignore_for_file: type=lint
|
>;
|
||||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
element.handleValue(ref, created);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class SystemdNotifier extends _$SystemdNotifier {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
SystemdState build(Spi spi) {
|
SystemdState build(Spi spi) {
|
||||||
final si = ref.read(serverNotifierProvider(spi.id));
|
final si = ref.read(serverProvider(spi.id));
|
||||||
_si = si;
|
_si = si;
|
||||||
// Async initialization
|
// Async initialization
|
||||||
Future.microtask(() => getUnits());
|
Future.microtask(() => getUnits());
|
||||||
|
|||||||
@@ -6,158 +6,103 @@ part of 'systemd.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$systemdNotifierHash() => r'98466bd176518545be49cae52f8dbe12af3a88a6';
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint, type=warning
|
||||||
|
|
||||||
/// Copied from Dart SDK
|
|
||||||
class _SystemHash {
|
|
||||||
_SystemHash._();
|
|
||||||
|
|
||||||
static int combine(int hash, int value) {
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = 0x1fffffff & (hash + value);
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10));
|
|
||||||
return hash ^ (hash >> 6);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int finish(int hash) {
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3));
|
|
||||||
// ignore: parameter_assignments
|
|
||||||
hash = hash ^ (hash >> 11);
|
|
||||||
return 0x1fffffff & (hash + ((0x00003fff & hash) << 15));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class _$SystemdNotifier
|
|
||||||
extends BuildlessAutoDisposeNotifier<SystemdState> {
|
|
||||||
late final Spi spi;
|
|
||||||
|
|
||||||
SystemdState build(Spi spi);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See also [SystemdNotifier].
|
|
||||||
@ProviderFor(SystemdNotifier)
|
@ProviderFor(SystemdNotifier)
|
||||||
const systemdNotifierProvider = SystemdNotifierFamily();
|
const systemdProvider = SystemdNotifierFamily._();
|
||||||
|
|
||||||
/// See also [SystemdNotifier].
|
final class SystemdNotifierProvider
|
||||||
class SystemdNotifierFamily extends Family<SystemdState> {
|
extends $NotifierProvider<SystemdNotifier, SystemdState> {
|
||||||
/// See also [SystemdNotifier].
|
const SystemdNotifierProvider._({
|
||||||
const SystemdNotifierFamily();
|
required SystemdNotifierFamily super.from,
|
||||||
|
required Spi super.argument,
|
||||||
|
}) : super(
|
||||||
|
retry: null,
|
||||||
|
name: r'systemdProvider',
|
||||||
|
isAutoDispose: true,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
/// See also [SystemdNotifier].
|
@override
|
||||||
SystemdNotifierProvider call(Spi spi) {
|
String debugGetCreateSourceHash() => _$systemdNotifierHash();
|
||||||
return SystemdNotifierProvider(spi);
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return r'systemdProvider'
|
||||||
|
''
|
||||||
|
'($argument)';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@$internal
|
||||||
@override
|
@override
|
||||||
SystemdNotifierProvider getProviderOverride(
|
SystemdNotifier create() => SystemdNotifier();
|
||||||
covariant SystemdNotifierProvider provider,
|
|
||||||
) {
|
|
||||||
return call(provider.spi);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
/// {@macro riverpod.override_with_value}
|
||||||
|
Override overrideWithValue(SystemdState value) {
|
||||||
@override
|
return $ProviderOverride(
|
||||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
|
||||||
|
|
||||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
|
||||||
|
|
||||||
@override
|
|
||||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
|
||||||
_allTransitiveDependencies;
|
|
||||||
|
|
||||||
@override
|
|
||||||
String? get name => r'systemdNotifierProvider';
|
|
||||||
}
|
|
||||||
|
|
||||||
/// See also [SystemdNotifier].
|
|
||||||
class SystemdNotifierProvider
|
|
||||||
extends AutoDisposeNotifierProviderImpl<SystemdNotifier, SystemdState> {
|
|
||||||
/// See also [SystemdNotifier].
|
|
||||||
SystemdNotifierProvider(Spi spi)
|
|
||||||
: this._internal(
|
|
||||||
() => SystemdNotifier()..spi = spi,
|
|
||||||
from: systemdNotifierProvider,
|
|
||||||
name: r'systemdNotifierProvider',
|
|
||||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
|
||||||
? null
|
|
||||||
: _$systemdNotifierHash,
|
|
||||||
dependencies: SystemdNotifierFamily._dependencies,
|
|
||||||
allTransitiveDependencies:
|
|
||||||
SystemdNotifierFamily._allTransitiveDependencies,
|
|
||||||
spi: spi,
|
|
||||||
);
|
|
||||||
|
|
||||||
SystemdNotifierProvider._internal(
|
|
||||||
super._createNotifier, {
|
|
||||||
required super.name,
|
|
||||||
required super.dependencies,
|
|
||||||
required super.allTransitiveDependencies,
|
|
||||||
required super.debugGetCreateSourceHash,
|
|
||||||
required super.from,
|
|
||||||
required this.spi,
|
|
||||||
}) : super.internal();
|
|
||||||
|
|
||||||
final Spi spi;
|
|
||||||
|
|
||||||
@override
|
|
||||||
SystemdState runNotifierBuild(covariant SystemdNotifier notifier) {
|
|
||||||
return notifier.build(spi);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Override overrideWith(SystemdNotifier Function() create) {
|
|
||||||
return ProviderOverride(
|
|
||||||
origin: this,
|
origin: this,
|
||||||
override: SystemdNotifierProvider._internal(
|
providerOverride: $SyncValueProvider<SystemdState>(value),
|
||||||
() => create()..spi = spi,
|
|
||||||
from: from,
|
|
||||||
name: null,
|
|
||||||
dependencies: null,
|
|
||||||
allTransitiveDependencies: null,
|
|
||||||
debugGetCreateSourceHash: null,
|
|
||||||
spi: spi,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
AutoDisposeNotifierProviderElement<SystemdNotifier, SystemdState>
|
|
||||||
createElement() {
|
|
||||||
return _SystemdNotifierProviderElement(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) {
|
bool operator ==(Object other) {
|
||||||
return other is SystemdNotifierProvider && other.spi == spi;
|
return other is SystemdNotifierProvider && other.argument == argument;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get hashCode {
|
int get hashCode {
|
||||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
return argument.hashCode;
|
||||||
hash = _SystemHash.combine(hash, spi.hashCode);
|
|
||||||
|
|
||||||
return _SystemHash.finish(hash);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
String _$systemdNotifierHash() => r'98466bd176518545be49cae52f8dbe12af3a88a6';
|
||||||
// ignore: unused_element
|
|
||||||
mixin SystemdNotifierRef on AutoDisposeNotifierProviderRef<SystemdState> {
|
|
||||||
/// The parameter `spi` of this provider.
|
|
||||||
Spi get spi;
|
|
||||||
}
|
|
||||||
|
|
||||||
class _SystemdNotifierProviderElement
|
final class SystemdNotifierFamily extends $Family
|
||||||
extends AutoDisposeNotifierProviderElement<SystemdNotifier, SystemdState>
|
with
|
||||||
with SystemdNotifierRef {
|
$ClassFamilyOverride<
|
||||||
_SystemdNotifierProviderElement(super.provider);
|
SystemdNotifier,
|
||||||
|
SystemdState,
|
||||||
|
SystemdState,
|
||||||
|
SystemdState,
|
||||||
|
Spi
|
||||||
|
> {
|
||||||
|
const SystemdNotifierFamily._()
|
||||||
|
: super(
|
||||||
|
retry: null,
|
||||||
|
name: r'systemdProvider',
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
isAutoDispose: true,
|
||||||
|
);
|
||||||
|
|
||||||
|
SystemdNotifierProvider call(Spi spi) =>
|
||||||
|
SystemdNotifierProvider._(argument: spi, from: this);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Spi get spi => (origin as SystemdNotifierProvider).spi;
|
String toString() => r'systemdProvider';
|
||||||
}
|
}
|
||||||
|
|
||||||
// ignore_for_file: type=lint
|
abstract class _$SystemdNotifier extends $Notifier<SystemdState> {
|
||||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
late final _$args = ref.$arg as Spi;
|
||||||
|
Spi get spi => _$args;
|
||||||
|
|
||||||
|
SystemdState build(Spi spi);
|
||||||
|
@$mustCallSuper
|
||||||
|
@override
|
||||||
|
void runBuild() {
|
||||||
|
final created = build(_$args);
|
||||||
|
final ref = this.ref as $Ref<SystemdState, SystemdState>;
|
||||||
|
final element =
|
||||||
|
ref.element
|
||||||
|
as $ClassProviderElement<
|
||||||
|
AnyNotifier<SystemdState, SystemdState>,
|
||||||
|
SystemdState,
|
||||||
|
Object?,
|
||||||
|
Object?
|
||||||
|
>;
|
||||||
|
element.handleValue(ref, created);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,21 +6,58 @@ part of 'virtual_keyboard.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
// ignore_for_file: type=lint, type=warning
|
||||||
|
|
||||||
|
@ProviderFor(VirtKeyboard)
|
||||||
|
const virtKeyboardProvider = VirtKeyboardProvider._();
|
||||||
|
|
||||||
|
final class VirtKeyboardProvider
|
||||||
|
extends $NotifierProvider<VirtKeyboard, VirtKeyState> {
|
||||||
|
const VirtKeyboardProvider._()
|
||||||
|
: super(
|
||||||
|
from: null,
|
||||||
|
argument: null,
|
||||||
|
retry: null,
|
||||||
|
name: r'virtKeyboardProvider',
|
||||||
|
isAutoDispose: true,
|
||||||
|
dependencies: null,
|
||||||
|
$allTransitiveDependencies: null,
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String debugGetCreateSourceHash() => _$virtKeyboardHash();
|
||||||
|
|
||||||
|
@$internal
|
||||||
|
@override
|
||||||
|
VirtKeyboard create() => VirtKeyboard();
|
||||||
|
|
||||||
|
/// {@macro riverpod.override_with_value}
|
||||||
|
Override overrideWithValue(VirtKeyState value) {
|
||||||
|
return $ProviderOverride(
|
||||||
|
origin: this,
|
||||||
|
providerOverride: $SyncValueProvider<VirtKeyState>(value),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String _$virtKeyboardHash() => r'1327d412bfb0dd261f3b555f353a8852b4f753e5';
|
String _$virtKeyboardHash() => r'1327d412bfb0dd261f3b555f353a8852b4f753e5';
|
||||||
|
|
||||||
/// See also [VirtKeyboard].
|
abstract class _$VirtKeyboard extends $Notifier<VirtKeyState> {
|
||||||
@ProviderFor(VirtKeyboard)
|
VirtKeyState build();
|
||||||
final virtKeyboardProvider =
|
@$mustCallSuper
|
||||||
AutoDisposeNotifierProvider<VirtKeyboard, VirtKeyState>.internal(
|
@override
|
||||||
VirtKeyboard.new,
|
void runBuild() {
|
||||||
name: r'virtKeyboardProvider',
|
final created = build();
|
||||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
final ref = this.ref as $Ref<VirtKeyState, VirtKeyState>;
|
||||||
? null
|
final element =
|
||||||
: _$virtKeyboardHash,
|
ref.element
|
||||||
dependencies: null,
|
as $ClassProviderElement<
|
||||||
allTransitiveDependencies: null,
|
AnyNotifier<VirtKeyState, VirtKeyState>,
|
||||||
);
|
VirtKeyState,
|
||||||
|
Object?,
|
||||||
typedef _$VirtKeyboard = AutoDisposeNotifier<VirtKeyState>;
|
Object?
|
||||||
// ignore_for_file: type=lint
|
>;
|
||||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
element.handleValue(ref, created);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ final class _BackupPageState extends ConsumerState<BackupPage> with AutomaticKee
|
|||||||
],
|
],
|
||||||
[CenterGreyTitle(libL10n.import), _buildBulkImportServers, _buildImportSnippet],
|
[CenterGreyTitle(libL10n.import), _buildBulkImportServers, _buildImportSnippet],
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget get _buildBakPwd {
|
Widget get _buildBakPwd {
|
||||||
@@ -400,7 +400,7 @@ final class _BackupPageState extends ConsumerState<BackupPage> with AutomaticKee
|
|||||||
child: SingleChildScrollView(child: Text(libL10n.askContinue('${libL10n.import} [$snippetNames]'))),
|
child: SingleChildScrollView(child: Text(libL10n.askContinue('${libL10n.import} [$snippetNames]'))),
|
||||||
actions: Btn.ok(
|
actions: Btn.ok(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
final notifier = ref.read(snippetNotifierProvider.notifier);
|
final notifier = ref.read(snippetProvider.notifier);
|
||||||
for (final snippet in snippets) {
|
for (final snippet in snippets) {
|
||||||
notifier.add(snippet);
|
notifier.add(snippet);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,8 +43,8 @@ class _ContainerPageState extends ConsumerState<ContainerPage> {
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
final serverState = ref.read(serverNotifierProvider(widget.args.spi.id));
|
final serverState = ref.read(serverProvider(widget.args.spi.id));
|
||||||
_provider = containerNotifierProvider(
|
_provider = containerProvider(
|
||||||
serverState.client,
|
serverState.client,
|
||||||
widget.args.spi.user,
|
widget.args.spi.user,
|
||||||
widget.args.spi.id,
|
widget.args.spi.id,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:fl_lib/fl_lib.dart';
|
import 'package:fl_lib/fl_lib.dart';
|
||||||
|
import 'package:flutter/foundation.dart' show kReleaseMode;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:responsive_framework/responsive_framework.dart';
|
import 'package:responsive_framework/responsive_framework.dart';
|
||||||
@@ -31,15 +32,19 @@ class _HomePageState extends ConsumerState<HomePage>
|
|||||||
bool _shouldAuth = false;
|
bool _shouldAuth = false;
|
||||||
DateTime? _pausedTime;
|
DateTime? _pausedTime;
|
||||||
|
|
||||||
late final _notifier = ref.read(serversNotifierProvider.notifier);
|
late final _notifier = ref.read(serversProvider.notifier);
|
||||||
late final _provider = ref.read(serversNotifierProvider);
|
late final _provider = ref.read(serversProvider);
|
||||||
late List<AppTab> _tabs = Stores.setting.homeTabs.fetch();
|
late List<AppTab> _tabs = Stores.setting.homeTabs.fetch();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
super.dispose();
|
super.dispose();
|
||||||
WidgetsBinding.instance.removeObserver(this);
|
WidgetsBinding.instance.removeObserver(this);
|
||||||
Future(() => _notifier.closeServer());
|
// In release builds (real app exit), close connections.
|
||||||
|
// In debug (hot reload), avoid forcing disconnects.
|
||||||
|
if (kReleaseMode) {
|
||||||
|
Future(() => _notifier.closeServer());
|
||||||
|
}
|
||||||
_pageController.dispose();
|
_pageController.dispose();
|
||||||
WakelockPlus.disable();
|
WakelockPlus.disable();
|
||||||
|
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ class _PingPageState extends ConsumerState<PingPage> with AutomaticKeepAliveClie
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ref.read(serversNotifierProvider).serverOrder.isEmpty) {
|
if (ref.read(serversProvider).serverOrder.isEmpty) {
|
||||||
context.showSnackBar(l10n.pingNoServer);
|
context.showSnackBar(l10n.pingNoServer);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -143,8 +143,8 @@ class _PingPageState extends ConsumerState<PingPage> with AutomaticKeepAliveClie
|
|||||||
}
|
}
|
||||||
|
|
||||||
await Future.wait(
|
await Future.wait(
|
||||||
ref.read(serversNotifierProvider).servers.values.map((spi) async {
|
ref.read(serversProvider).servers.values.map((spi) async {
|
||||||
final serverState = ref.read(serverNotifierProvider(spi.id));
|
final serverState = ref.read(serverProvider(spi.id));
|
||||||
if (serverState.client == null) {
|
if (serverState.client == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class _PrivateKeyEditPageState extends ConsumerState<PrivateKeyEditPage> {
|
|||||||
|
|
||||||
final _loading = ValueNotifier<Widget?>(null);
|
final _loading = ValueNotifier<Widget?>(null);
|
||||||
|
|
||||||
late final _notifier = ref.read(privateKeyNotifierProvider.notifier);
|
late final _notifier = ref.read(privateKeyProvider.notifier);
|
||||||
|
|
||||||
PrivateKeyInfo? get pki => widget.args?.pki;
|
PrivateKeyInfo? get pki => widget.args?.pki;
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ class _PrivateKeyListState extends ConsumerState<PrivateKeysListPage> with After
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildBody() {
|
Widget _buildBody() {
|
||||||
final privateKeyState = ref.watch(privateKeyNotifierProvider);
|
final privateKeyState = ref.watch(privateKeyProvider);
|
||||||
final pkis = privateKeyState.keys;
|
final pkis = privateKeyState.keys;
|
||||||
|
|
||||||
if (pkis.isEmpty) {
|
if (pkis.isEmpty) {
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class _ProcessPageState extends ConsumerState<ProcessPage> {
|
|||||||
ProcSortMode _procSortMode = ProcSortMode.cpu;
|
ProcSortMode _procSortMode = ProcSortMode.cpu;
|
||||||
List<ProcSortMode> _sortModes = List.from(ProcSortMode.values);
|
List<ProcSortMode> _sortModes = List.from(ProcSortMode.values);
|
||||||
|
|
||||||
late final _provider = serverNotifierProvider(widget.args.spi.id);
|
late final _provider = serverProvider(widget.args.spi.id);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ final class _PvePageState extends ConsumerState<PvePage> {
|
|||||||
late MediaQueryData _media;
|
late MediaQueryData _media;
|
||||||
Timer? _timer;
|
Timer? _timer;
|
||||||
|
|
||||||
late final _provider = pveNotifierProvider(widget.args.spi);
|
late final _provider = pveProvider(widget.args.spi);
|
||||||
late final _notifier = ref.read(_provider.notifier);
|
late final _notifier = ref.read(_provider.notifier);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ class _ServerDetailPageState extends ConsumerState<ServerDetailPage> with Single
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final serverState = ref.watch(serverNotifierProvider(widget.args.spi.id));
|
final serverState = ref.watch(serverProvider(widget.args.spi.id));
|
||||||
if (serverState.client == null) {
|
if (serverState.client == null) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: CustomAppBar(),
|
appBar: CustomAppBar(),
|
||||||
|
|||||||
@@ -63,14 +63,18 @@ extension _Actions on _ServerEditPageState {
|
|||||||
if (shouldProceed == true) {
|
if (shouldProceed == true) {
|
||||||
final username = usernameController.text.isNotEmpty ? usernameController.text : defaultUsername;
|
final username = usernameController.text.isNotEmpty ? usernameController.text : defaultUsername;
|
||||||
final keyId = keyIdController.text.isNotEmpty ? keyIdController.text : null;
|
final keyId = keyIdController.text.isNotEmpty ? keyIdController.text : null;
|
||||||
final servers = discoveredServers.map((result) => Spi(
|
final servers = discoveredServers
|
||||||
name: result.ip,
|
.map(
|
||||||
ip: result.ip,
|
(result) => Spi(
|
||||||
port: result.port,
|
name: result.ip,
|
||||||
user: username,
|
ip: result.ip,
|
||||||
keyId: keyId,
|
port: result.port,
|
||||||
pwd: _passwordController.text.isEmpty ? null : _passwordController.text,
|
user: username,
|
||||||
)).toList();
|
keyId: keyId,
|
||||||
|
pwd: _passwordController.text.isEmpty ? null : _passwordController.text,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.toList();
|
||||||
|
|
||||||
await _batchImportServers(servers);
|
await _batchImportServers(servers);
|
||||||
}
|
}
|
||||||
@@ -93,8 +97,9 @@ extension _Actions on _ServerEditPageState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
context.showSnackBar('${libL10n.success}: $imported ${l10n.servers}');
|
context.showSnackBar('${libL10n.success}: $imported ${l10n.servers}');
|
||||||
if (mounted) Navigator.of(context).pop(true);
|
if (mounted) context.pop(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onTapSSHImport() async {
|
void _onTapSSHImport() async {
|
||||||
try {
|
try {
|
||||||
final servers = await SSHConfig.parseConfig();
|
final servers = await SSHConfig.parseConfig();
|
||||||
@@ -114,8 +119,7 @@ extension _Actions on _ServerEditPageState {
|
|||||||
void _handleImportSSHCfgPermissionIssue(Object e, StackTrace s) async {
|
void _handleImportSSHCfgPermissionIssue(Object e, StackTrace s) async {
|
||||||
dprint('Error importing SSH config: $e');
|
dprint('Error importing SSH config: $e');
|
||||||
// Check if it's a permission error and offer file picker as fallback
|
// Check if it's a permission error and offer file picker as fallback
|
||||||
if (e is PathAccessException ||
|
if (e is PathAccessException || e.toString().contains('Operation not permitted')) {
|
||||||
e.toString().contains('Operation not permitted')) {
|
|
||||||
final useFilePicker = await context.showRoundDialog<bool>(
|
final useFilePicker = await context.showRoundDialog<bool>(
|
||||||
title: l10n.sshConfigImport,
|
title: l10n.sshConfigImport,
|
||||||
child: Column(
|
child: Column(
|
||||||
@@ -157,15 +161,10 @@ extension _Actions on _ServerEditPageState {
|
|||||||
children: [
|
children: [
|
||||||
Text(l10n.sshConfigFoundServers('${summary.total}')),
|
Text(l10n.sshConfigFoundServers('${summary.total}')),
|
||||||
if (summary.hasDuplicates)
|
if (summary.hasDuplicates)
|
||||||
Text(
|
Text(l10n.sshConfigDuplicatesSkipped('${summary.duplicates}'), style: UIs.textGrey),
|
||||||
l10n.sshConfigDuplicatesSkipped('${summary.duplicates}'),
|
|
||||||
style: UIs.textGrey,
|
|
||||||
),
|
|
||||||
Text(l10n.sshConfigServersToImport('${summary.toImport}')),
|
Text(l10n.sshConfigServersToImport('${summary.toImport}')),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
...resolved.map(
|
...resolved.map((s) => Text('• ${s.name} (${s.user}@${s.ip}:${s.port})')),
|
||||||
(s) => Text('• ${s.name} (${s.user}@${s.ip}:${s.port})'),
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -174,7 +173,7 @@ extension _Actions on _ServerEditPageState {
|
|||||||
|
|
||||||
if (shouldImport == true) {
|
if (shouldImport == true) {
|
||||||
for (final server in resolved) {
|
for (final server in resolved) {
|
||||||
ref.read(serversNotifierProvider.notifier).addServer(server);
|
ref.read(serversProvider.notifier).addServer(server);
|
||||||
}
|
}
|
||||||
context.showSnackBar(l10n.sshConfigImported('${resolved.length}'));
|
context.showSnackBar(l10n.sshConfigImported('${resolved.length}'));
|
||||||
}
|
}
|
||||||
@@ -203,10 +202,7 @@ extension _Actions on _ServerEditPageState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _onTapCustomItem() async {
|
void _onTapCustomItem() async {
|
||||||
final res = await KvEditor.route.go(
|
final res = await KvEditor.route.go(context, KvEditorArgs(data: _customCmds.value));
|
||||||
context,
|
|
||||||
KvEditorArgs(data: _customCmds.value),
|
|
||||||
);
|
|
||||||
if (res == null) return;
|
if (res == null) return;
|
||||||
_customCmds.value = res;
|
_customCmds.value = res;
|
||||||
}
|
}
|
||||||
@@ -257,17 +253,10 @@ extension _Actions on _ServerEditPageState {
|
|||||||
scriptDir: _scriptDirCtrl.text.selfNotEmptyOrNull,
|
scriptDir: _scriptDirCtrl.text.selfNotEmptyOrNull,
|
||||||
);
|
);
|
||||||
|
|
||||||
final wolEmpty =
|
final wolEmpty = _wolMacCtrl.text.isEmpty && _wolIpCtrl.text.isEmpty && _wolPwdCtrl.text.isEmpty;
|
||||||
_wolMacCtrl.text.isEmpty &&
|
|
||||||
_wolIpCtrl.text.isEmpty &&
|
|
||||||
_wolPwdCtrl.text.isEmpty;
|
|
||||||
final wol = wolEmpty
|
final wol = wolEmpty
|
||||||
? null
|
? null
|
||||||
: WakeOnLanCfg(
|
: WakeOnLanCfg(mac: _wolMacCtrl.text, ip: _wolIpCtrl.text, pwd: _wolPwdCtrl.text.selfNotEmptyOrNull);
|
||||||
mac: _wolMacCtrl.text,
|
|
||||||
ip: _wolIpCtrl.text,
|
|
||||||
pwd: _wolPwdCtrl.text.selfNotEmptyOrNull,
|
|
||||||
);
|
|
||||||
if (wol != null) {
|
if (wol != null) {
|
||||||
final wolValidation = wol.validate();
|
final wolValidation = wol.validate();
|
||||||
if (!wolValidation.$2) {
|
if (!wolValidation.$2) {
|
||||||
@@ -277,19 +266,13 @@ extension _Actions on _ServerEditPageState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final spi = Spi(
|
final spi = Spi(
|
||||||
name: _nameController.text.isEmpty
|
name: _nameController.text.isEmpty ? _ipController.text : _nameController.text,
|
||||||
? _ipController.text
|
|
||||||
: _nameController.text,
|
|
||||||
ip: _ipController.text,
|
ip: _ipController.text,
|
||||||
port: int.parse(_portController.text),
|
port: int.parse(_portController.text),
|
||||||
user: _usernameController.text,
|
user: _usernameController.text,
|
||||||
pwd: _passwordController.text.selfNotEmptyOrNull,
|
pwd: _passwordController.text.selfNotEmptyOrNull,
|
||||||
keyId: _keyIdx.value != null
|
keyId: _keyIdx.value != null
|
||||||
? ref
|
? ref.read(privateKeyProvider).keys.elementAt(_keyIdx.value!).id
|
||||||
.read(privateKeyNotifierProvider)
|
|
||||||
.keys
|
|
||||||
.elementAt(_keyIdx.value!)
|
|
||||||
.id
|
|
||||||
: null,
|
: null,
|
||||||
tags: _tags.value.isEmpty ? null : _tags.value.toList(),
|
tags: _tags.value.isEmpty ? null : _tags.value.toList(),
|
||||||
alterUrl: _altUrlController.text.selfNotEmptyOrNull,
|
alterUrl: _altUrlController.text.selfNotEmptyOrNull,
|
||||||
@@ -300,9 +283,7 @@ extension _Actions on _ServerEditPageState {
|
|||||||
envs: _env.value.isEmpty ? null : _env.value,
|
envs: _env.value.isEmpty ? null : _env.value,
|
||||||
id: widget.args?.spi.id ?? ShortId.generate(),
|
id: widget.args?.spi.id ?? ShortId.generate(),
|
||||||
customSystemType: _systemType.value,
|
customSystemType: _systemType.value,
|
||||||
disabledCmdTypes: _disabledCmdTypes.value.isEmpty
|
disabledCmdTypes: _disabledCmdTypes.value.isEmpty ? null : _disabledCmdTypes.value.toList(),
|
||||||
? null
|
|
||||||
: _disabledCmdTypes.value.toList(),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if (this.spi == null) {
|
if (this.spi == null) {
|
||||||
@@ -311,9 +292,9 @@ extension _Actions on _ServerEditPageState {
|
|||||||
context.showSnackBar('${l10n.sameIdServerExist}: ${spi.id}');
|
context.showSnackBar('${l10n.sameIdServerExist}: ${spi.id}');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ref.read(serversNotifierProvider.notifier).addServer(spi);
|
ref.read(serversProvider.notifier).addServer(spi);
|
||||||
} else {
|
} else {
|
||||||
ref.read(serversNotifierProvider.notifier).updateServer(this.spi!, spi);
|
ref.read(serversProvider.notifier).updateServer(this.spi!, spi);
|
||||||
}
|
}
|
||||||
|
|
||||||
context.pop();
|
context.pop();
|
||||||
@@ -369,7 +350,7 @@ extension _Utils on _ServerEditPageState {
|
|||||||
|
|
||||||
// Import without asking again since user already gave permission
|
// Import without asking again since user already gave permission
|
||||||
for (final server in resolved) {
|
for (final server in resolved) {
|
||||||
ref.read(serversNotifierProvider.notifier).addServer(server);
|
ref.read(serversProvider.notifier).addServer(server);
|
||||||
}
|
}
|
||||||
context.showSnackBar(l10n.sshConfigImported('${resolved.length}'));
|
context.showSnackBar(l10n.sshConfigImported('${resolved.length}'));
|
||||||
}
|
}
|
||||||
@@ -432,10 +413,7 @@ extension _Utils on _ServerEditPageState {
|
|||||||
if (spi.keyId == null) {
|
if (spi.keyId == null) {
|
||||||
_passwordController.text = spi.pwd ?? '';
|
_passwordController.text = spi.pwd ?? '';
|
||||||
} else {
|
} else {
|
||||||
_keyIdx.value = ref
|
_keyIdx.value = ref.read(privateKeyProvider).keys.indexWhere((e) => e.id == spi.keyId);
|
||||||
.read(privateKeyNotifierProvider)
|
|
||||||
.keys
|
|
||||||
.indexWhere((e) => e.id == spi.keyId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// List in dart is passed by pointer, so you need to copy it here
|
/// List in dart is passed by pointer, so you need to copy it here
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ class _ServerEditPageState extends ConsumerState<ServerEditPage> with AfterLayou
|
|||||||
hint: 'root',
|
hint: 'root',
|
||||||
suggestion: false,
|
suggestion: false,
|
||||||
),
|
),
|
||||||
TagTile(tags: _tags, allTags: ref.watch(serversNotifierProvider).tags).cardx,
|
TagTile(tags: _tags, allTags: ref.watch(serversProvider).tags).cardx,
|
||||||
ListTile(
|
ListTile(
|
||||||
title: Text(l10n.autoConnect),
|
title: Text(l10n.autoConnect),
|
||||||
trailing: _autoConnect.listenVal(
|
trailing: _autoConnect.listenVal(
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ extension _Widgets on _ServerEditPageState {
|
|||||||
|
|
||||||
Widget _buildKeyAuth() {
|
Widget _buildKeyAuth() {
|
||||||
const padding = EdgeInsets.only(left: 13, right: 13, bottom: 7);
|
const padding = EdgeInsets.only(left: 13, right: 13, bottom: 7);
|
||||||
final privateKeyState = ref.watch(privateKeyNotifierProvider);
|
final privateKeyState = ref.watch(privateKeyProvider);
|
||||||
final pkis = privateKeyState.keys;
|
final pkis = privateKeyState.keys;
|
||||||
|
|
||||||
final choice = _keyIdx.listenVal((val) {
|
final choice = _keyIdx.listenVal((val) {
|
||||||
@@ -350,7 +350,7 @@ extension _Widgets on _ServerEditPageState {
|
|||||||
Widget _buildJumpServer() {
|
Widget _buildJumpServer() {
|
||||||
const padding = EdgeInsets.only(left: 13, right: 13, bottom: 7);
|
const padding = EdgeInsets.only(left: 13, right: 13, bottom: 7);
|
||||||
final srvs = ref
|
final srvs = ref
|
||||||
.watch(serversNotifierProvider)
|
.watch(serversProvider)
|
||||||
.servers
|
.servers
|
||||||
.values
|
.values
|
||||||
.where((e) => e.jumpId == null)
|
.where((e) => e.jumpId == null)
|
||||||
@@ -462,7 +462,7 @@ extension _Widgets on _ServerEditPageState {
|
|||||||
actions: Btn.ok(
|
actions: Btn.ok(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
context.pop();
|
context.pop();
|
||||||
ref.read(serversNotifierProvider.notifier).delServer(spi!.id);
|
ref.read(serversProvider.notifier).delServer(spi!.id);
|
||||||
context.pop(true);
|
context.pop(true);
|
||||||
},
|
},
|
||||||
red: true,
|
red: true,
|
||||||
|
|||||||
@@ -30,16 +30,16 @@ extension on _ServerPageState {
|
|||||||
const Icon(Icons.refresh, size: 21, color: Colors.grey),
|
const Icon(Icons.refresh, size: 21, color: Colors.grey),
|
||||||
() {
|
() {
|
||||||
TryLimiter.reset(s.spi.id);
|
TryLimiter.reset(s.spi.id);
|
||||||
ref.read(serversNotifierProvider.notifier).refresh(spi: s.spi);
|
ref.read(serversProvider.notifier).refresh(spi: s.spi);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
ServerConn.disconnected => (
|
ServerConn.disconnected => (
|
||||||
const Icon(MingCute.link_3_line, size: 19, color: Colors.grey),
|
const Icon(MingCute.link_3_line, size: 19, color: Colors.grey),
|
||||||
() => ref.read(serversNotifierProvider.notifier).refresh(spi: s.spi),
|
() => ref.read(serversProvider.notifier).refresh(spi: s.spi),
|
||||||
),
|
),
|
||||||
ServerConn.finished => (
|
ServerConn.finished => (
|
||||||
const Icon(MingCute.unlink_2_line, size: 17, color: Colors.grey),
|
const Icon(MingCute.unlink_2_line, size: 17, color: Colors.grey),
|
||||||
() => ref.read(serversNotifierProvider.notifier).closeServer(id: s.spi.id),
|
() => ref.read(serversProvider.notifier).closeServer(id: s.spi.id),
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ ${ss.err?.message ?? 'null'}
|
|||||||
Widget _buildNet(ServerStatus ss, String id) {
|
Widget _buildNet(ServerStatus ss, String id) {
|
||||||
final cardNoti = _getCardNoti(id);
|
final cardNoti = _getCardNoti(id);
|
||||||
final type = cardNoti.value.net ?? Stores.setting.netViewType.fetch();
|
final type = cardNoti.value.net ?? Stores.setting.netViewType.fetch();
|
||||||
final device = ref.watch(serversNotifierProvider).servers[id]?.custom?.netDev;
|
final device = ref.watch(serversProvider).servers[id]?.custom?.netDev;
|
||||||
final (a, b) = type.build(ss, dev: device);
|
final (a, b) = type.build(ss, dev: device);
|
||||||
return AnimatedSwitcher(
|
return AnimatedSwitcher(
|
||||||
duration: const Duration(milliseconds: 377),
|
duration: const Duration(milliseconds: 377),
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ extension on _ServerPageState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildLandscapeBody() {
|
Widget _buildLandscapeBody() {
|
||||||
final serverState = ref.watch(serversNotifierProvider);
|
final serverState = ref.watch(serversProvider);
|
||||||
final order = serverState.serverOrder;
|
final order = serverState.serverOrder;
|
||||||
|
|
||||||
if (order.isEmpty) {
|
if (order.isEmpty) {
|
||||||
@@ -37,7 +37,7 @@ extension on _ServerPageState {
|
|||||||
itemCount: order.length,
|
itemCount: order.length,
|
||||||
itemBuilder: (_, idx) {
|
itemBuilder: (_, idx) {
|
||||||
final id = order[idx];
|
final id = order[idx];
|
||||||
final srv = ref.watch(serverNotifierProvider(id));
|
final srv = ref.watch(serverProvider(id));
|
||||||
|
|
||||||
final title = _buildServerCardTitle(srv);
|
final title = _buildServerCardTitle(srv);
|
||||||
final List<Widget> children = [title, _buildNormalCard(srv.status, srv.spi)];
|
final List<Widget> children = [title, _buildNormalCard(srv.status, srv.spi)];
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ class _ServerPageState extends ConsumerState<ServerPage>
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
_tags = ValueNotifier(ref.read(serversNotifierProvider).tags);
|
_tags = ValueNotifier(ref.read(serversProvider).tags);
|
||||||
_startAvoidJitterTimer();
|
_startAvoidJitterTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ class _ServerPageState extends ConsumerState<ServerPage>
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
super.build(context);
|
super.build(context);
|
||||||
// Listen to provider changes and update the ValueNotifier
|
// Listen to provider changes and update the ValueNotifier
|
||||||
ref.listen(serversNotifierProvider, (previous, next) {
|
ref.listen(serversProvider, (previous, next) {
|
||||||
_tags.value = next.tags;
|
_tags.value = next.tags;
|
||||||
});
|
});
|
||||||
return OrientationBuilder(
|
return OrientationBuilder(
|
||||||
@@ -133,7 +133,7 @@ class _ServerPageState extends ConsumerState<ServerPage>
|
|||||||
|
|
||||||
Widget _buildPortrait() {
|
Widget _buildPortrait() {
|
||||||
// final isMobile = ResponsiveBreakpoints.of(context).isMobile;
|
// final isMobile = ResponsiveBreakpoints.of(context).isMobile;
|
||||||
final serverState = ref.watch(serversNotifierProvider);
|
final serverState = ref.watch(serversProvider);
|
||||||
return _tag.listenVal((val) {
|
return _tag.listenVal((val) {
|
||||||
final filtered = _filterServers(serverState.serverOrder);
|
final filtered = _filterServers(serverState.serverOrder);
|
||||||
final child = _buildScaffold(_buildBodySmall(filtered: filtered));
|
final child = _buildScaffold(_buildBodySmall(filtered: filtered));
|
||||||
@@ -183,7 +183,7 @@ class _ServerPageState extends ConsumerState<ServerPage>
|
|||||||
// Last item is just spacing
|
// Last item is just spacing
|
||||||
if (index == lens) return SizedBox(height: 77);
|
if (index == lens) return SizedBox(height: 77);
|
||||||
|
|
||||||
final individualState = ref.watch(serverNotifierProvider(serversInThisColumn[index]));
|
final individualState = ref.watch(serverProvider(serversInThisColumn[index]));
|
||||||
|
|
||||||
return _buildEachServerCard(individualState);
|
return _buildEachServerCard(individualState);
|
||||||
},
|
},
|
||||||
@@ -339,8 +339,8 @@ class _ServerPageState extends ConsumerState<ServerPage>
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> afterFirstLayout(BuildContext context) async {
|
Future<void> afterFirstLayout(BuildContext context) async {
|
||||||
ref.read(serversNotifierProvider.notifier).refresh();
|
ref.read(serversProvider.notifier).refresh();
|
||||||
ref.read(serversNotifierProvider.notifier).startAutoRefresh();
|
ref.read(serversProvider.notifier).startAutoRefresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
static const _kCardHeightMin = 23.0;
|
static const _kCardHeightMin = 23.0;
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ extension _Utils on _ServerPageState {
|
|||||||
final tag = _tag.value;
|
final tag = _tag.value;
|
||||||
if (tag == TagSwitcher.kDefaultTag) return order;
|
if (tag == TagSwitcher.kDefaultTag) return order;
|
||||||
return order.where((e) {
|
return order.where((e) {
|
||||||
final tags = ref.read(serversNotifierProvider).servers[e]?.tags;
|
final tags = ref.read(serversProvider).servers[e]?.tags;
|
||||||
if (tags == null) return false;
|
if (tags == null) return false;
|
||||||
return tags.contains(tag);
|
return tags.contains(tag);
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ extension _Server on _AppSettingsPageState {
|
|||||||
onTap: () async {
|
onTap: () async {
|
||||||
final keys = Stores.server.keys();
|
final keys = Stores.server.keys();
|
||||||
final names = Map.fromEntries(
|
final names = Map.fromEntries(
|
||||||
keys.map((e) => MapEntry(e, ref.read(serversNotifierProvider).servers[e]?.name ?? e)),
|
keys.map((e) => MapEntry(e, ref.read(serversProvider).servers[e]?.name ?? e)),
|
||||||
);
|
);
|
||||||
final deleteKeys = await context.showPickDialog<String>(
|
final deleteKeys = await context.showPickDialog<String>(
|
||||||
clearable: true,
|
clearable: true,
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class _ServerOrderPageState extends ConsumerState<ServerOrderPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildBody() {
|
Widget _buildBody() {
|
||||||
final serverState = ref.watch(serversNotifierProvider);
|
final serverState = ref.watch(serversProvider);
|
||||||
final order = serverState.serverOrder;
|
final order = serverState.serverOrder;
|
||||||
|
|
||||||
if (order.isEmpty) {
|
if (order.isEmpty) {
|
||||||
@@ -77,7 +77,7 @@ class _ServerOrderPageState extends ConsumerState<ServerOrderPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildCardTile(int index) {
|
Widget _buildCardTile(int index) {
|
||||||
final serverState = ref.watch(serversNotifierProvider);
|
final serverState = ref.watch(serversProvider);
|
||||||
final order = serverState.serverOrder;
|
final order = serverState.serverOrder;
|
||||||
final id = order[index];
|
final id = order[index];
|
||||||
final spi = serverState.servers[id];
|
final spi = serverState.servers[id];
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ class _SnippetEditPageState extends ConsumerState<SnippetEditPage> with AfterLay
|
|||||||
child: Text(libL10n.askContinue('${libL10n.delete} ${l10n.snippet}(${snippet.name})')),
|
child: Text(libL10n.askContinue('${libL10n.delete} ${l10n.snippet}(${snippet.name})')),
|
||||||
actions: Btn.ok(
|
actions: Btn.ok(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
ref.read(snippetNotifierProvider.notifier).del(snippet);
|
ref.read(snippetProvider.notifier).del(snippet);
|
||||||
context.pop();
|
context.pop();
|
||||||
context.pop();
|
context.pop();
|
||||||
},
|
},
|
||||||
@@ -96,7 +96,7 @@ class _SnippetEditPageState extends ConsumerState<SnippetEditPage> with AfterLay
|
|||||||
autoRunOn: _autoRunOn.value.isEmpty ? null : _autoRunOn.value,
|
autoRunOn: _autoRunOn.value.isEmpty ? null : _autoRunOn.value,
|
||||||
);
|
);
|
||||||
final oldSnippet = widget.args?.snippet;
|
final oldSnippet = widget.args?.snippet;
|
||||||
final notifier = ref.read(snippetNotifierProvider.notifier);
|
final notifier = ref.read(snippetProvider.notifier);
|
||||||
if (oldSnippet != null) {
|
if (oldSnippet != null) {
|
||||||
notifier.update(oldSnippet, snippet);
|
notifier.update(oldSnippet, snippet);
|
||||||
} else {
|
} else {
|
||||||
@@ -130,7 +130,7 @@ class _SnippetEditPageState extends ConsumerState<SnippetEditPage> with AfterLay
|
|||||||
),
|
),
|
||||||
Consumer(
|
Consumer(
|
||||||
builder: (_, ref, _) {
|
builder: (_, ref, _) {
|
||||||
final tags = ref.watch(snippetNotifierProvider.select((p) => p.tags));
|
final tags = ref.watch(snippetProvider.select((p) => p.tags));
|
||||||
return TagTile(tags: _tags, allTags: tags).cardx;
|
return TagTile(tags: _tags, allTags: tags).cardx;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -157,7 +157,7 @@ class _SnippetEditPageState extends ConsumerState<SnippetEditPage> with AfterLay
|
|||||||
builder: (vals) {
|
builder: (vals) {
|
||||||
final subtitle = vals.isEmpty
|
final subtitle = vals.isEmpty
|
||||||
? null
|
? null
|
||||||
: vals.map((e) => ref.read(serversNotifierProvider).servers[e]?.name ?? e).join(', ');
|
: vals.map((e) => ref.read(serversProvider).servers[e]?.name ?? e).join(', ');
|
||||||
return ListTile(
|
return ListTile(
|
||||||
leading: const Padding(
|
leading: const Padding(
|
||||||
padding: EdgeInsets.only(left: 5),
|
padding: EdgeInsets.only(left: 5),
|
||||||
@@ -170,11 +170,11 @@ class _SnippetEditPageState extends ConsumerState<SnippetEditPage> with AfterLay
|
|||||||
: Text(subtitle, maxLines: 1, style: UIs.textGrey, overflow: TextOverflow.ellipsis),
|
: Text(subtitle, maxLines: 1, style: UIs.textGrey, overflow: TextOverflow.ellipsis),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
// Create a filtered copy for the dialog, don't modify the original
|
// Create a filtered copy for the dialog, don't modify the original
|
||||||
final validServerIds = vals.where((e) => ref.read(serversNotifierProvider).serverOrder.contains(e)).toList();
|
final validServerIds = vals.where((e) => ref.read(serversProvider).serverOrder.contains(e)).toList();
|
||||||
final serverIds = await context.showPickDialog(
|
final serverIds = await context.showPickDialog(
|
||||||
title: l10n.autoRun,
|
title: l10n.autoRun,
|
||||||
items: ref.read(serversNotifierProvider).serverOrder,
|
items: ref.read(serversProvider).serverOrder,
|
||||||
display: (e) => ref.read(serversNotifierProvider).servers[e]?.name ?? e,
|
display: (e) => ref.read(serversProvider).servers[e]?.name ?? e,
|
||||||
initial: validServerIds,
|
initial: validServerIds,
|
||||||
clearable: true,
|
clearable: true,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class _SnippetListPageState extends ConsumerState<SnippetListPage> with Automati
|
|||||||
|
|
||||||
Widget _buildBody() {
|
Widget _buildBody() {
|
||||||
// final isMobile = ResponsiveBreakpoints.of(context).isMobile;
|
// final isMobile = ResponsiveBreakpoints.of(context).isMobile;
|
||||||
final snippetState = ref.watch(snippetNotifierProvider);
|
final snippetState = ref.watch(snippetProvider);
|
||||||
final snippets = snippetState.snippets;
|
final snippets = snippetState.snippets;
|
||||||
|
|
||||||
return _tag.listenVal((tag) {
|
return _tag.listenVal((tag) {
|
||||||
@@ -56,7 +56,7 @@ class _SnippetListPageState extends ConsumerState<SnippetListPage> with Automati
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildScaffold(List<Snippet> snippets, String tag) {
|
Widget _buildScaffold(List<Snippet> snippets, String tag) {
|
||||||
final snippetState = ref.watch(snippetNotifierProvider);
|
final snippetState = ref.watch(snippetProvider);
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: TagSwitcher(
|
appBar: TagSwitcher(
|
||||||
tags: snippetState.tags.vn,
|
tags: snippetState.tags.vn,
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ extension _Init on SSHPageState {
|
|||||||
// Mark status connected for notifications / live activities
|
// Mark status connected for notifications / live activities
|
||||||
TermSessionManager.updateStatus(_sessionId, TermSessionStatus.connected);
|
TermSessionManager.updateStatus(_sessionId, TermSessionStatus.connected);
|
||||||
|
|
||||||
final snippets = ref.read(snippetNotifierProvider.select((p) => p.snippets));
|
final snippets = ref.read(snippetProvider.select((p) => p.snippets));
|
||||||
for (final snippet in snippets) {
|
for (final snippet in snippets) {
|
||||||
if (snippet.autoRunOn?.contains(widget.args.spi.id) == true) {
|
if (snippet.autoRunOn?.contains(widget.args.spi.id) == true) {
|
||||||
snippet.runInTerm(_terminal, widget.args.spi);
|
snippet.runInTerm(_terminal, widget.args.spi);
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ class SSHPageState extends ConsumerState<SSHPage>
|
|||||||
_setupDiscontinuityTimer();
|
_setupDiscontinuityTimer();
|
||||||
|
|
||||||
// Initialize client from provider
|
// Initialize client from provider
|
||||||
final serverState = ref.read(serverNotifierProvider(widget.args.spi.id));
|
final serverState = ref.read(serverProvider(widget.args.spi.id));
|
||||||
_client = serverState.client;
|
_client = serverState.client;
|
||||||
|
|
||||||
if (++_sshConnCount == 1) {
|
if (++_sshConnCount == 1) {
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ extension _VirtKey on SSHPageState {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case VirtualKeyFunc.snippet:
|
case VirtualKeyFunc.snippet:
|
||||||
final snippetState = ref.read(snippetNotifierProvider);
|
final snippetState = ref.read(snippetProvider);
|
||||||
final snippets = await context.showPickWithTagDialog<Snippet>(
|
final snippets = await context.showPickWithTagDialog<Snippet>(
|
||||||
title: l10n.snippet,
|
title: l10n.snippet,
|
||||||
tags: snippetState.tags.vn,
|
tags: snippetState.tags.vn,
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ class _AddPage extends ConsumerWidget {
|
|||||||
const viewPadding = 7.0;
|
const viewPadding = 7.0;
|
||||||
final viewWidth = context.windowSize.width - 2 * viewPadding;
|
final viewWidth = context.windowSize.width - 2 * viewPadding;
|
||||||
|
|
||||||
final serverState = ref.watch(serversNotifierProvider);
|
final serverState = ref.watch(serversProvider);
|
||||||
final itemCount = serverState.servers.length;
|
final itemCount = serverState.servers.length;
|
||||||
const itemPadding = 1.0;
|
const itemPadding = 1.0;
|
||||||
const itemWidth = 150.0;
|
const itemWidth = 150.0;
|
||||||
|
|||||||
@@ -359,7 +359,7 @@ extension _OnTapFile on _LocalFilePageState {
|
|||||||
|
|
||||||
final spi = await context.showPickSingleDialog<Spi>(
|
final spi = await context.showPickSingleDialog<Spi>(
|
||||||
title: libL10n.select,
|
title: libL10n.select,
|
||||||
items: ref.read(serversNotifierProvider).servers.values.toList(),
|
items: ref.read(serversProvider).servers.values.toList(),
|
||||||
display: (e) => e.name,
|
display: (e) => e.name,
|
||||||
);
|
);
|
||||||
if (spi == null) return;
|
if (spi == null) return;
|
||||||
@@ -370,7 +370,7 @@ extension _OnTapFile on _LocalFilePageState {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ref.read(sftpNotifierProvider.notifier).add(SftpReq(spi, '$remotePath/$fileName', file.absolute.path, SftpReqType.upload));
|
ref.read(sftpProvider.notifier).add(SftpReq(spi, '$remotePath/$fileName', file.absolute.path, SftpReqType.upload));
|
||||||
context.showSnackBar(l10n.added2List);
|
context.showSnackBar(l10n.added2List);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class _SftpPageState extends ConsumerState<SftpPage> with AfterLayoutMixin {
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
final serverState = ref.read(serverNotifierProvider(widget.args.spi.id));
|
final serverState = ref.read(serverProvider(widget.args.spi.id));
|
||||||
_client = serverState.client!;
|
_client = serverState.client!;
|
||||||
_status = SftpBrowserStatus(_client);
|
_status = SftpBrowserStatus(_client);
|
||||||
}
|
}
|
||||||
@@ -290,7 +290,7 @@ extension _Actions on _SftpPageState {
|
|||||||
final localPath = _getLocalPath(remotePath);
|
final localPath = _getLocalPath(remotePath);
|
||||||
final completer = Completer();
|
final completer = Completer();
|
||||||
final req = SftpReq(widget.args.spi, remotePath, localPath, SftpReqType.download);
|
final req = SftpReq(widget.args.spi, remotePath, localPath, SftpReqType.download);
|
||||||
ref.read(sftpNotifierProvider.notifier).add(req, completer: completer);
|
ref.read(sftpProvider.notifier).add(req, completer: completer);
|
||||||
final (suc, err) = await context.showLoadingDialog(fn: () => completer.future);
|
final (suc, err) = await context.showLoadingDialog(fn: () => completer.future);
|
||||||
if (suc == null || err != null) return;
|
if (suc == null || err != null) return;
|
||||||
|
|
||||||
@@ -300,7 +300,7 @@ extension _Actions on _SftpPageState {
|
|||||||
path: localPath,
|
path: localPath,
|
||||||
onSave: (_) {
|
onSave: (_) {
|
||||||
ref
|
ref
|
||||||
.read(sftpNotifierProvider.notifier)
|
.read(sftpProvider.notifier)
|
||||||
.add(SftpReq(req.spi, remotePath, localPath, SftpReqType.upload));
|
.add(SftpReq(req.spi, remotePath, localPath, SftpReqType.upload));
|
||||||
context.showSnackBar(l10n.added2List);
|
context.showSnackBar(l10n.added2List);
|
||||||
},
|
},
|
||||||
@@ -323,7 +323,7 @@ extension _Actions on _SftpPageState {
|
|||||||
final remotePath = _getRemotePath(name);
|
final remotePath = _getRemotePath(name);
|
||||||
|
|
||||||
ref
|
ref
|
||||||
.read(sftpNotifierProvider.notifier)
|
.read(sftpProvider.notifier)
|
||||||
.add(SftpReq(widget.args.spi, remotePath, _getLocalPath(remotePath), SftpReqType.download));
|
.add(SftpReq(widget.args.spi, remotePath, _getLocalPath(remotePath), SftpReqType.download));
|
||||||
|
|
||||||
context.pop();
|
context.pop();
|
||||||
@@ -653,7 +653,7 @@ extension _Actions on _SftpPageState {
|
|||||||
final remotePath = '$remoteDir/$fileName';
|
final remotePath = '$remoteDir/$fileName';
|
||||||
Loggers.app.info('SFTP upload local: $path, remote: $remotePath');
|
Loggers.app.info('SFTP upload local: $path, remote: $remotePath');
|
||||||
ref
|
ref
|
||||||
.read(sftpNotifierProvider.notifier)
|
.read(sftpProvider.notifier)
|
||||||
.add(SftpReq(widget.args.spi, remotePath, path, SftpReqType.upload));
|
.add(SftpReq(widget.args.spi, remotePath, path, SftpReqType.upload));
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.upload_file),
|
icon: const Icon(Icons.upload_file),
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class _SftpMissionPageState extends ConsumerState<SftpMissionPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildBody() {
|
Widget _buildBody() {
|
||||||
final status = ref.watch(sftpNotifierProvider.select((pro) => pro.requests));
|
final status = ref.watch(sftpProvider.select((pro) => pro.requests));
|
||||||
if (status.isEmpty) {
|
if (status.isEmpty) {
|
||||||
return Center(child: Text(libL10n.empty));
|
return Center(child: Text(libL10n.empty));
|
||||||
}
|
}
|
||||||
@@ -143,7 +143,7 @@ class _SftpMissionPageState extends ConsumerState<SftpMissionPage> {
|
|||||||
child: Text(libL10n.askContinue('${libL10n.delete} ${l10n.mission}($name)')),
|
child: Text(libL10n.askContinue('${libL10n.delete} ${l10n.mission}($name)')),
|
||||||
actions: Btn.ok(
|
actions: Btn.ok(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
ref.read(sftpNotifierProvider.notifier).cancel(id);
|
ref.read(sftpProvider.notifier).cancel(id);
|
||||||
context.pop();
|
context.pop();
|
||||||
},
|
},
|
||||||
).toList,
|
).toList,
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ final class SystemdPage extends ConsumerStatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final class _SystemdPageState extends ConsumerState<SystemdPage> {
|
final class _SystemdPageState extends ConsumerState<SystemdPage> {
|
||||||
late final _pro = systemdNotifierProvider(widget.args.spi);
|
late final _pro = systemdProvider(widget.args.spi);
|
||||||
|
|
||||||
late final _notifier = ref.read(_pro.notifier);
|
late final _notifier = ref.read(_pro.notifier);
|
||||||
|
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ void _onTapMoreBtns(ServerFuncBtn value, Spi spi, BuildContext context, WidgetRe
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case ServerFuncBtn.snippet:
|
case ServerFuncBtn.snippet:
|
||||||
final snippetState = ref.read(snippetNotifierProvider);
|
final snippetState = ref.read(snippetProvider);
|
||||||
if (snippetState.snippets.isEmpty) {
|
if (snippetState.snippets.isEmpty) {
|
||||||
context.showSnackBar(libL10n.empty);
|
context.showSnackBar(libL10n.empty);
|
||||||
return;
|
return;
|
||||||
@@ -273,7 +273,7 @@ void _gotoSSH(Spi spi, BuildContext context) async {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool _checkClient(BuildContext context, String id, WidgetRef ref) {
|
bool _checkClient(BuildContext context, String id, WidgetRef ref) {
|
||||||
final serverState = ref.read(serverNotifierProvider(id));
|
final serverState = ref.read(serverProvider(id));
|
||||||
if (serverState.client == null) {
|
if (serverState.client == null) {
|
||||||
context.showSnackBar(l10n.waitConnection);
|
context.showSnackBar(l10n.waitConnection);
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -653,7 +653,7 @@
|
|||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
||||||
PRODUCT_NAME = "Server Box";
|
PRODUCT_NAME = "Server Box";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = hj_macmini_for_serverbox;
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = serverbox_lkmm;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
|||||||
100
pubspec.lock
100
pubspec.lock
@@ -17,6 +17,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.6.0"
|
version: "7.6.0"
|
||||||
|
analyzer_buffer:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: analyzer_buffer
|
||||||
|
sha256: f7833bee67c03c37241c67f8741b17cc501b69d9758df7a5a4a13ed6c947be43
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.1.10"
|
||||||
analyzer_plugin:
|
analyzer_plugin:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -117,10 +125,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: build
|
name: build
|
||||||
sha256: "51dc711996cbf609b90cbe5b335bbce83143875a9d58e4b5c6d3c4f684d3dda7"
|
sha256: "7d95cbbb1526ab5ae977df9b4cc660963b9b27f6d1075c0b34653868911385e4"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.5.4"
|
version: "3.0.0"
|
||||||
build_config:
|
build_config:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -141,26 +149,26 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: build_resolvers
|
name: build_resolvers
|
||||||
sha256: ee4257b3f20c0c90e72ed2b57ad637f694ccba48839a821e87db762548c22a62
|
sha256: "38c9c339333a09b090a638849a4c56e70a404c6bdd3b511493addfbc113b60c2"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.5.4"
|
version: "3.0.0"
|
||||||
build_runner:
|
build_runner:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: build_runner
|
name: build_runner
|
||||||
sha256: "382a4d649addbfb7ba71a3631df0ec6a45d5ab9b098638144faf27f02778eb53"
|
sha256: b971d4a1c789eba7be3e6fe6ce5e5b50fd3719e3cb485b3fad6d04358304351d
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.5.4"
|
version: "2.6.0"
|
||||||
build_runner_core:
|
build_runner_core:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: build_runner_core
|
name: build_runner_core
|
||||||
sha256: "85fbbb1036d576d966332a3f5ce83f2ce66a40bea1a94ad2d5fc29a19a0d3792"
|
sha256: c04e612ca801cd0928ccdb891c263a2b1391cb27940a5ea5afcf9ba894de5d62
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.1.2"
|
version: "9.2.0"
|
||||||
built_collection:
|
built_collection:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -343,10 +351,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: custom_lint_core
|
name: custom_lint_core
|
||||||
sha256: "31110af3dde9d29fb10828ca33f1dce24d2798477b167675543ce3d208dee8be"
|
sha256: cc4684d22ca05bf0a4a51127e19a8aea576b42079ed2bc9e956f11aaebe35dd1
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.5"
|
version: "0.8.0"
|
||||||
custom_lint_visitor:
|
custom_lint_visitor:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -496,11 +504,9 @@ packages:
|
|||||||
fl_lib:
|
fl_lib:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: "."
|
path: "../fl_lib"
|
||||||
ref: "v1.0.349"
|
relative: true
|
||||||
resolved-ref: "77971814f0d7624c9473d4f6ed796c0166d0828b"
|
source: path
|
||||||
url: "https://github.com/lppcg/fl_lib"
|
|
||||||
source: git
|
|
||||||
version: "0.0.1"
|
version: "0.0.1"
|
||||||
flutter:
|
flutter:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
@@ -511,10 +517,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: flutter_displaymode
|
name: flutter_displaymode
|
||||||
sha256: "42c5e9abd13d28ed74f701b60529d7f8416947e58256e6659c5550db719c57ef"
|
sha256: ecd44b1e902b0073b42ff5b55bf283f38e088270724cdbb7f7065ccf54aa60a8
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.0"
|
version: "0.7.0"
|
||||||
flutter_gbk2utf8:
|
flutter_gbk2utf8:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -588,10 +594,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: flutter_riverpod
|
name: flutter_riverpod
|
||||||
sha256: "9532ee6db4a943a1ed8383072a2e3eeda041db5657cdf6d2acecf3c21ecbe7e1"
|
sha256: "71a420767ae786f9402e4efb74e1119fa95b53e6a3781ab8ab21c121ac1349c6"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.6.1"
|
version: "3.0.1"
|
||||||
flutter_secure_storage:
|
flutter_secure_storage:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -640,6 +646,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.2"
|
version: "3.1.2"
|
||||||
|
flutter_staggered_grid_view:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: flutter_staggered_grid_view
|
||||||
|
sha256: "19e7abb550c96fbfeb546b23f3ff356ee7c59a019a651f8f102a4ba9b7349395"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.7.0"
|
||||||
flutter_svg:
|
flutter_svg:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -662,10 +676,10 @@ packages:
|
|||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: freezed
|
name: freezed
|
||||||
sha256: "2d399f823b8849663744d2a9ddcce01c49268fb4170d0442a655bf6a2f47be22"
|
sha256: "13065f10e135263a4f5a4391b79a8efc5fb8106f8dd555a9e49b750b45393d77"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.0"
|
version: "3.2.3"
|
||||||
freezed_annotation:
|
freezed_annotation:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -743,10 +757,10 @@ packages:
|
|||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: hive_ce_generator
|
name: hive_ce_generator
|
||||||
sha256: "609678c10ebee7503505a0007050af40a0a4f498b1fb7def3220df341e573a89"
|
sha256: a169feeff2da9cc2c417ce5ae9bcebf7c8a95d7a700492b276909016ad70a786
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.2"
|
version: "1.9.3"
|
||||||
html:
|
html:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -871,10 +885,10 @@ packages:
|
|||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: json_serializable
|
name: json_serializable
|
||||||
sha256: c50ef5fc083d5b5e12eef489503ba3bf5ccc899e487d691584699b4bdefeea8c
|
sha256: "33a040668b31b320aafa4822b7b1e177e163fc3c1e835c6750319d4ab23aa6fe"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.9.5"
|
version: "6.11.1"
|
||||||
leak_tracker:
|
leak_tracker:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1003,6 +1017,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.0"
|
version: "2.0.0"
|
||||||
|
mockito:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: mockito
|
||||||
|
sha256: "2314cbe9165bcd16106513df9cf3c3224713087f09723b128928dc11a4379f99"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "5.5.0"
|
||||||
multi_split_view:
|
multi_split_view:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1248,10 +1270,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: re_editor
|
name: re_editor
|
||||||
sha256: "17e430f0591dd361992ec2dd6f69191c1853fa46e05432e095310a8f82ee820e"
|
sha256: dd4e6ca7350a8fa0cda4e425b82a0c3c010f0f6b3f618c74223e05b8129ab629
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.0"
|
version: "0.8.0"
|
||||||
re_highlight:
|
re_highlight:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1272,34 +1294,34 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: riverpod
|
name: riverpod
|
||||||
sha256: "59062512288d3056b2321804332a13ffdd1bf16df70dcc8e506e411280a72959"
|
sha256: b21446f04474040479b19004c5b729605cde221bbd14cf16ad0db8804dce4810
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.6.1"
|
version: "3.0.1"
|
||||||
riverpod_analyzer_utils:
|
riverpod_analyzer_utils:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: riverpod_analyzer_utils
|
name: riverpod_analyzer_utils
|
||||||
sha256: "03a17170088c63aab6c54c44456f5ab78876a1ddb6032ffde1662ddab4959611"
|
sha256: a0f68adb078b790faa3c655110a017f9a7b7b079a57bbd40f540e80dce5fcd29
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.5.10"
|
version: "1.0.0-dev.7"
|
||||||
riverpod_annotation:
|
riverpod_annotation:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: riverpod_annotation
|
name: riverpod_annotation
|
||||||
sha256: e14b0bf45b71326654e2705d462f21b958f987087be850afd60578fcd502d1b8
|
sha256: d8154e04008b98015ee3e0514a5d929e3d15605790d28bcd74e63e2d415632a1
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.6.1"
|
version: "3.0.1"
|
||||||
riverpod_generator:
|
riverpod_generator:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: riverpod_generator
|
name: riverpod_generator
|
||||||
sha256: "44a0992d54473eb199ede00e2260bd3c262a86560e3c6f6374503d86d0580e36"
|
sha256: af92fa4051568071f7e12bd44b8b4f3adc7470e3676bd5ac953582a9cce4a1c0
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.6.5"
|
version: "3.0.1"
|
||||||
screen_retriever:
|
screen_retriever:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1352,10 +1374,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: share_plus
|
name: share_plus
|
||||||
sha256: d7dc0630a923883c6328ca31b89aa682bacbf2f8304162d29f7c6aaff03a27a1
|
sha256: "3424e9d5c22fd7f7590254ba09465febd6f8827c8b19a44350de4ac31d92d3a6"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "11.1.0"
|
version: "12.0.0"
|
||||||
share_plus_platform_interface:
|
share_plus_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1461,10 +1483,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: source_gen
|
name: source_gen
|
||||||
sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b"
|
sha256: "7b19d6ba131c6eb98bfcbf8d56c1a7002eba438af2e7ae6f8398b2b0f4f381e3"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.0"
|
version: "3.1.0"
|
||||||
source_helper:
|
source_helper:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
14
pubspec.yaml
14
pubspec.yaml
@@ -19,9 +19,9 @@ dependencies:
|
|||||||
easy_isolate: ^1.3.0
|
easy_isolate: ^1.3.0
|
||||||
extended_image: ^10.0.0
|
extended_image: ^10.0.0
|
||||||
file_picker: ^10.1.9
|
file_picker: ^10.1.9
|
||||||
flutter_riverpod: ^2.6.1
|
flutter_riverpod: ^3.0.1
|
||||||
flutter_highlight: ^0.7.0
|
flutter_highlight: ^0.7.0
|
||||||
flutter_displaymode: ^0.6.0
|
flutter_displaymode: ^0.7.0
|
||||||
fl_chart: ^1.0.0
|
fl_chart: ^1.0.0
|
||||||
freezed_annotation: ^3.0.0
|
freezed_annotation: ^3.0.0
|
||||||
highlight: ^0.7.0
|
highlight: ^0.7.0
|
||||||
@@ -29,8 +29,8 @@ dependencies:
|
|||||||
intl: ^0.20.2
|
intl: ^0.20.2
|
||||||
json_annotation: ^4.9.0
|
json_annotation: ^4.9.0
|
||||||
responsive_framework: ^1.5.1
|
responsive_framework: ^1.5.1
|
||||||
re_editor: ^0.7.0
|
re_editor: ^0.8.0
|
||||||
riverpod_annotation: ^2.6.1
|
riverpod_annotation: ^3.0.1
|
||||||
shared_preferences: ^2.1.1
|
shared_preferences: ^2.1.1
|
||||||
wakelock_plus: ^1.2.4
|
wakelock_plus: ^1.2.4
|
||||||
wake_on_lan: ^4.1.1+3
|
wake_on_lan: ^4.1.1+3
|
||||||
@@ -74,8 +74,8 @@ dependency_overrides:
|
|||||||
# path: ../dartssh2
|
# path: ../dartssh2
|
||||||
# xterm:
|
# xterm:
|
||||||
# path: ../xterm.dart
|
# path: ../xterm.dart
|
||||||
# fl_lib:
|
fl_lib:
|
||||||
# path: ../fl_lib
|
path: ../fl_lib
|
||||||
# fl_build:
|
# fl_build:
|
||||||
# path: ../fl_build
|
# path: ../fl_build
|
||||||
gtk: # TODO: remove it after fixed in upstream
|
gtk: # TODO: remove it after fixed in upstream
|
||||||
@@ -91,7 +91,7 @@ dev_dependencies:
|
|||||||
flutter_lints: ^6.0.0
|
flutter_lints: ^6.0.0
|
||||||
json_serializable: ^6.8.0
|
json_serializable: ^6.8.0
|
||||||
freezed: ^3.0.0
|
freezed: ^3.0.0
|
||||||
riverpod_generator: ^2.6.1
|
riverpod_generator: ^3.0.1
|
||||||
test: ^1.24.0
|
test: ^1.24.0
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|||||||
Reference in New Issue
Block a user