♻️ Migrated to riverpod v3
This commit is contained in:
@@ -330,13 +330,127 @@ class ServerState {
|
||||
}
|
||||
}
|
||||
|
||||
class ServerStateNotifier extends StateNotifier<ServerState> {
|
||||
final ActivityRpcServer server;
|
||||
final Dio apiClient;
|
||||
class ServerStateNotifier extends Notifier<ServerState> {
|
||||
late final ActivityRpcServer server;
|
||||
late final Dio apiClient;
|
||||
Timer? _renewalTimer;
|
||||
|
||||
ServerStateNotifier(this.apiClient, this.server)
|
||||
: super(ServerState(status: 'Server not started'));
|
||||
@override
|
||||
ServerState build() {
|
||||
apiClient = ref.watch(apiClientProvider);
|
||||
server = ActivityRpcServer({});
|
||||
_setupHandlers();
|
||||
ref.onDispose(() {
|
||||
_stopRenewal();
|
||||
server.stop();
|
||||
});
|
||||
return ServerState(status: 'Server not started');
|
||||
}
|
||||
|
||||
void _setupHandlers() {
|
||||
server.updateHandlers({
|
||||
'connection': (socket) {
|
||||
final clientId =
|
||||
socket is _WsSocketWrapper
|
||||
? socket.clientId
|
||||
: (socket as IpcSocketWrapper).clientId;
|
||||
updateStatus('Client connected (ID: $clientId)');
|
||||
socket.send({
|
||||
'cmd': 'DISPATCH',
|
||||
'data': {
|
||||
'v': 1,
|
||||
'config': {
|
||||
'cdn_host': 'fake.cdn',
|
||||
'api_endpoint': '//fake.api',
|
||||
'environment': 'dev',
|
||||
},
|
||||
'user': {
|
||||
'id': 'fake_user_id',
|
||||
'username': 'FakeUser',
|
||||
'discriminator': '0001',
|
||||
'avatar': null,
|
||||
'bot': false,
|
||||
},
|
||||
},
|
||||
'evt': 'READY',
|
||||
'nonce': '12345',
|
||||
});
|
||||
},
|
||||
'message': (socket, dynamic data) async {
|
||||
if (data['cmd'] == 'SET_ACTIVITY') {
|
||||
final activity = data['args']['activity'];
|
||||
final appId = 'rpc:${socket.clientId}';
|
||||
|
||||
final currentId = currentActivityManualId;
|
||||
if (currentId != null && currentId != appId) {
|
||||
talker.info(
|
||||
'Skipped the new SET_ACTIVITY command due to there is one existing...',
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
addActivity('Activity: ${activity['details'] ?? 'Untitled'}');
|
||||
// https://discord.com/developers/docs/topics/rpc#setactivity-set-activity-argument-structure
|
||||
final type = switch (activity['type']) {
|
||||
0 => 1, // Discord Playing -> Playing
|
||||
2 => 2, // Discord Music -> Listening
|
||||
3 => 2, // Discord Watching -> Listening
|
||||
_ => 1, // Discord Competing (or null) -> Playing
|
||||
};
|
||||
final title = activity['name'] ?? activity['assets']?['small_text'];
|
||||
final subtitle =
|
||||
activity['details'] ?? activity['assets']?['large_text'];
|
||||
var imageSmall = activity['assets']?['small_image'];
|
||||
var imageLarge = activity['assets']?['large_image'];
|
||||
if (imageSmall != null && !imageSmall!.contains(':')) {
|
||||
imageSmall = 'discord:$imageSmall';
|
||||
}
|
||||
if (imageLarge != null && !imageLarge!.contains(':')) {
|
||||
imageLarge = 'discord:$imageLarge';
|
||||
}
|
||||
try {
|
||||
final activityData = {
|
||||
'type': type,
|
||||
'manual_id': appId,
|
||||
'title': title,
|
||||
'subtitle': subtitle,
|
||||
'caption': activity['state'],
|
||||
'title_url': activity['assets']?['small_text_url'],
|
||||
'subtitle_url': activity['assets']?['large_text_url'],
|
||||
'small_image': imageSmall,
|
||||
'large_image': imageLarge,
|
||||
'meta': activity,
|
||||
'lease_minutes': kPresenceActivityLease,
|
||||
};
|
||||
|
||||
await apiClient.post('/pass/activities', data: activityData);
|
||||
setCurrentActivity(appId, activityData);
|
||||
} catch (e) {
|
||||
talker.log('Failed to set remote activity status: $e');
|
||||
}
|
||||
socket.send({
|
||||
'cmd': 'SET_ACTIVITY',
|
||||
'data': data['args']['activity'],
|
||||
'evt': null,
|
||||
'nonce': data['nonce'],
|
||||
});
|
||||
}
|
||||
},
|
||||
'close': (socket) async {
|
||||
updateStatus('Client disconnected');
|
||||
final currentId = currentActivityManualId;
|
||||
try {
|
||||
await apiClient.delete(
|
||||
'/pass/activities',
|
||||
queryParameters: {'manualId': currentId},
|
||||
);
|
||||
setCurrentActivity(null, null);
|
||||
} catch (e) {
|
||||
talker.log('Failed to unset remote activity status: $e');
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
String? get currentActivityManualId => state.currentActivityManualId;
|
||||
|
||||
@@ -408,119 +522,8 @@ class ServerStateNotifier extends StateNotifier<ServerState> {
|
||||
const kPresenceActivityLease = 5;
|
||||
|
||||
// Providers
|
||||
final rpcServerStateProvider = StateNotifierProvider<
|
||||
ServerStateNotifier,
|
||||
ServerState
|
||||
>((ref) {
|
||||
final apiClient = ref.watch(apiClientProvider);
|
||||
final server = ActivityRpcServer({});
|
||||
final notifier = ServerStateNotifier(apiClient, server);
|
||||
server.updateHandlers({
|
||||
'connection': (socket) {
|
||||
final clientId =
|
||||
socket is _WsSocketWrapper
|
||||
? socket.clientId
|
||||
: (socket as IpcSocketWrapper).clientId;
|
||||
notifier.updateStatus('Client connected (ID: $clientId)');
|
||||
socket.send({
|
||||
'cmd': 'DISPATCH',
|
||||
'data': {
|
||||
'v': 1,
|
||||
'config': {
|
||||
'cdn_host': 'fake.cdn',
|
||||
'api_endpoint': '//fake.api',
|
||||
'environment': 'dev',
|
||||
},
|
||||
'user': {
|
||||
'id': 'fake_user_id',
|
||||
'username': 'FakeUser',
|
||||
'discriminator': '0001',
|
||||
'avatar': null,
|
||||
'bot': false,
|
||||
},
|
||||
},
|
||||
'evt': 'READY',
|
||||
'nonce': '12345',
|
||||
});
|
||||
},
|
||||
'message': (socket, dynamic data) async {
|
||||
if (data['cmd'] == 'SET_ACTIVITY') {
|
||||
final activity = data['args']['activity'];
|
||||
final appId = 'rpc:${socket.clientId}';
|
||||
|
||||
final currentId = notifier.currentActivityManualId;
|
||||
if (currentId != null && currentId != appId) {
|
||||
talker.info(
|
||||
'Skipped the new SET_ACTIVITY command due to there is one existing...',
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
notifier.addActivity('Activity: ${activity['details'] ?? 'Untitled'}');
|
||||
// https://discord.com/developers/docs/topics/rpc#setactivity-set-activity-argument-structure
|
||||
final type = switch (activity['type']) {
|
||||
0 => 1, // Discord Playing -> Playing
|
||||
2 => 2, // Discord Music -> Listening
|
||||
3 => 2, // Discord Watching -> Listening
|
||||
_ => 1, // Discord Competing (or null) -> Playing
|
||||
};
|
||||
final title = activity['name'] ?? activity['assets']?['small_text'];
|
||||
final subtitle =
|
||||
activity['details'] ?? activity['assets']?['large_text'];
|
||||
var imageSmall = activity['assets']?['small_image'];
|
||||
var imageLarge = activity['assets']?['large_image'];
|
||||
if (imageSmall != null && !imageSmall!.contains(':')) {
|
||||
imageSmall = 'discord:$imageSmall';
|
||||
}
|
||||
if (imageLarge != null && !imageLarge!.contains(':')) {
|
||||
imageLarge = 'discord:$imageLarge';
|
||||
}
|
||||
try {
|
||||
final apiClient = ref.watch(apiClientProvider);
|
||||
final activityData = {
|
||||
'type': type,
|
||||
'manual_id': appId,
|
||||
'title': title,
|
||||
'subtitle': subtitle,
|
||||
'caption': activity['state'],
|
||||
'title_url': activity['assets']?['small_text_url'],
|
||||
'subtitle_url': activity['assets']?['large_text_url'],
|
||||
'small_image': imageSmall,
|
||||
'large_image': imageLarge,
|
||||
'meta': activity,
|
||||
'lease_minutes': kPresenceActivityLease,
|
||||
};
|
||||
|
||||
await apiClient.post('/pass/activities', data: activityData);
|
||||
notifier.setCurrentActivity(appId, activityData);
|
||||
} catch (e) {
|
||||
talker.log('Failed to set remote activity status: $e');
|
||||
}
|
||||
socket.send({
|
||||
'cmd': 'SET_ACTIVITY',
|
||||
'data': data['args']['activity'],
|
||||
'evt': null,
|
||||
'nonce': data['nonce'],
|
||||
});
|
||||
}
|
||||
},
|
||||
'close': (socket) async {
|
||||
notifier.updateStatus('Client disconnected');
|
||||
final currentId = notifier.currentActivityManualId;
|
||||
try {
|
||||
final apiClient = ref.watch(apiClientProvider);
|
||||
await apiClient.delete(
|
||||
'/pass/activities',
|
||||
queryParameters: {'manualId': currentId},
|
||||
);
|
||||
notifier.setCurrentActivity(null, null);
|
||||
} catch (e) {
|
||||
talker.log('Failed to unset remote activity status: $e');
|
||||
}
|
||||
},
|
||||
});
|
||||
return notifier;
|
||||
});
|
||||
final rpcServerStateProvider =
|
||||
NotifierProvider<ServerStateNotifier, ServerState>(ServerStateNotifier.new);
|
||||
|
||||
final rpcServerProvider = Provider<ActivityRpcServer>((ref) {
|
||||
final notifier = ref.watch(rpcServerStateProvider.notifier);
|
||||
|
||||
@@ -6,152 +6,83 @@ part of 'activity_rpc.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$presenceActivitiesHash() =>
|
||||
r'3bfaa638eeb961ecd62a32d6a7760a6a7e7bf6f2';
|
||||
// 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));
|
||||
}
|
||||
}
|
||||
|
||||
/// See also [presenceActivities].
|
||||
@ProviderFor(presenceActivities)
|
||||
const presenceActivitiesProvider = PresenceActivitiesFamily();
|
||||
const presenceActivitiesProvider = PresenceActivitiesFamily._();
|
||||
|
||||
/// See also [presenceActivities].
|
||||
class PresenceActivitiesFamily
|
||||
extends Family<AsyncValue<List<SnPresenceActivity>>> {
|
||||
/// See also [presenceActivities].
|
||||
const PresenceActivitiesFamily();
|
||||
final class PresenceActivitiesProvider
|
||||
extends
|
||||
$FunctionalProvider<
|
||||
AsyncValue<List<SnPresenceActivity>>,
|
||||
List<SnPresenceActivity>,
|
||||
FutureOr<List<SnPresenceActivity>>
|
||||
>
|
||||
with
|
||||
$FutureModifier<List<SnPresenceActivity>>,
|
||||
$FutureProvider<List<SnPresenceActivity>> {
|
||||
const PresenceActivitiesProvider._({
|
||||
required PresenceActivitiesFamily super.from,
|
||||
required String super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'presenceActivitiesProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
/// See also [presenceActivities].
|
||||
PresenceActivitiesProvider call(String uname) {
|
||||
return PresenceActivitiesProvider(uname);
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$presenceActivitiesHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'presenceActivitiesProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
PresenceActivitiesProvider getProviderOverride(
|
||||
covariant PresenceActivitiesProvider provider,
|
||||
) {
|
||||
return call(provider.uname);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
$FutureProviderElement<List<SnPresenceActivity>> $createElement(
|
||||
$ProviderPointer pointer,
|
||||
) => $FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'presenceActivitiesProvider';
|
||||
}
|
||||
|
||||
/// See also [presenceActivities].
|
||||
class PresenceActivitiesProvider
|
||||
extends AutoDisposeFutureProvider<List<SnPresenceActivity>> {
|
||||
/// See also [presenceActivities].
|
||||
PresenceActivitiesProvider(String uname)
|
||||
: this._internal(
|
||||
(ref) => presenceActivities(ref as PresenceActivitiesRef, uname),
|
||||
from: presenceActivitiesProvider,
|
||||
name: r'presenceActivitiesProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$presenceActivitiesHash,
|
||||
dependencies: PresenceActivitiesFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
PresenceActivitiesFamily._allTransitiveDependencies,
|
||||
uname: uname,
|
||||
);
|
||||
|
||||
PresenceActivitiesProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.uname,
|
||||
}) : super.internal();
|
||||
|
||||
final String uname;
|
||||
|
||||
@override
|
||||
Override overrideWith(
|
||||
FutureOr<List<SnPresenceActivity>> Function(PresenceActivitiesRef provider)
|
||||
create,
|
||||
) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: PresenceActivitiesProvider._internal(
|
||||
(ref) => create(ref as PresenceActivitiesRef),
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
uname: uname,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeFutureProviderElement<List<SnPresenceActivity>> createElement() {
|
||||
return _PresenceActivitiesProviderElement(this);
|
||||
FutureOr<List<SnPresenceActivity>> create(Ref ref) {
|
||||
final argument = this.argument as String;
|
||||
return presenceActivities(ref, argument);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is PresenceActivitiesProvider && other.uname == uname;
|
||||
return other is PresenceActivitiesProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, uname.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin PresenceActivitiesRef
|
||||
on AutoDisposeFutureProviderRef<List<SnPresenceActivity>> {
|
||||
/// The parameter `uname` of this provider.
|
||||
String get uname;
|
||||
}
|
||||
String _$presenceActivitiesHash() =>
|
||||
r'3bfaa638eeb961ecd62a32d6a7760a6a7e7bf6f2';
|
||||
|
||||
class _PresenceActivitiesProviderElement
|
||||
extends AutoDisposeFutureProviderElement<List<SnPresenceActivity>>
|
||||
with PresenceActivitiesRef {
|
||||
_PresenceActivitiesProviderElement(super.provider);
|
||||
final class PresenceActivitiesFamily extends $Family
|
||||
with $FunctionalFamilyOverride<FutureOr<List<SnPresenceActivity>>, String> {
|
||||
const PresenceActivitiesFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'presenceActivitiesProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
PresenceActivitiesProvider call(String uname) =>
|
||||
PresenceActivitiesProvider._(argument: uname, from: this);
|
||||
|
||||
@override
|
||||
String get uname => (origin as PresenceActivitiesProvider).uname;
|
||||
String toString() => r'presenceActivitiesProvider';
|
||||
}
|
||||
|
||||
// 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,19 +6,58 @@ part of 'call.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: type=lint, type=warning
|
||||
|
||||
@ProviderFor(CallNotifier)
|
||||
const callProvider = CallNotifierProvider._();
|
||||
|
||||
final class CallNotifierProvider
|
||||
extends $NotifierProvider<CallNotifier, CallState> {
|
||||
const CallNotifierProvider._()
|
||||
: super(
|
||||
from: null,
|
||||
argument: null,
|
||||
retry: null,
|
||||
name: r'callProvider',
|
||||
isAutoDispose: false,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$callNotifierHash();
|
||||
|
||||
@$internal
|
||||
@override
|
||||
CallNotifier create() => CallNotifier();
|
||||
|
||||
/// {@macro riverpod.override_with_value}
|
||||
Override overrideWithValue(CallState value) {
|
||||
return $ProviderOverride(
|
||||
origin: this,
|
||||
providerOverride: $SyncValueProvider<CallState>(value),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
String _$callNotifierHash() => r'ef4e3e9c9d411cf9dce1ceb456a3b866b2c87db3';
|
||||
|
||||
/// See also [CallNotifier].
|
||||
@ProviderFor(CallNotifier)
|
||||
final callNotifierProvider = NotifierProvider<CallNotifier, CallState>.internal(
|
||||
CallNotifier.new,
|
||||
name: r'callNotifierProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product') ? null : _$callNotifierHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$CallNotifier = Notifier<CallState>;
|
||||
// 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
|
||||
abstract class _$CallNotifier extends $Notifier<CallState> {
|
||||
CallState build();
|
||||
@$mustCallSuper
|
||||
@override
|
||||
void runBuild() {
|
||||
final created = build();
|
||||
final ref = this.ref as $Ref<CallState, CallState>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<CallState, CallState>,
|
||||
CallState,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,163 +6,97 @@ part of 'chat_online_count.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$chatOnlineCountNotifierHash() =>
|
||||
r'19af8fd0e9f62c65e12a68215406776085235fa3';
|
||||
// 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 _$ChatOnlineCountNotifier
|
||||
extends BuildlessAutoDisposeAsyncNotifier<int> {
|
||||
late final String chatroomId;
|
||||
|
||||
FutureOr<int> build(String chatroomId);
|
||||
}
|
||||
|
||||
/// See also [ChatOnlineCountNotifier].
|
||||
@ProviderFor(ChatOnlineCountNotifier)
|
||||
const chatOnlineCountNotifierProvider = ChatOnlineCountNotifierFamily();
|
||||
const chatOnlineCountProvider = ChatOnlineCountNotifierFamily._();
|
||||
|
||||
/// See also [ChatOnlineCountNotifier].
|
||||
class ChatOnlineCountNotifierFamily extends Family<AsyncValue<int>> {
|
||||
/// See also [ChatOnlineCountNotifier].
|
||||
const ChatOnlineCountNotifierFamily();
|
||||
final class ChatOnlineCountNotifierProvider
|
||||
extends $AsyncNotifierProvider<ChatOnlineCountNotifier, int> {
|
||||
const ChatOnlineCountNotifierProvider._({
|
||||
required ChatOnlineCountNotifierFamily super.from,
|
||||
required String super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'chatOnlineCountProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
/// See also [ChatOnlineCountNotifier].
|
||||
ChatOnlineCountNotifierProvider call(String chatroomId) {
|
||||
return ChatOnlineCountNotifierProvider(chatroomId);
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$chatOnlineCountNotifierHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'chatOnlineCountProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
ChatOnlineCountNotifierProvider getProviderOverride(
|
||||
covariant ChatOnlineCountNotifierProvider provider,
|
||||
) {
|
||||
return call(provider.chatroomId);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'chatOnlineCountNotifierProvider';
|
||||
}
|
||||
|
||||
/// See also [ChatOnlineCountNotifier].
|
||||
class ChatOnlineCountNotifierProvider
|
||||
extends AutoDisposeAsyncNotifierProviderImpl<ChatOnlineCountNotifier, int> {
|
||||
/// See also [ChatOnlineCountNotifier].
|
||||
ChatOnlineCountNotifierProvider(String chatroomId)
|
||||
: this._internal(
|
||||
() => ChatOnlineCountNotifier()..chatroomId = chatroomId,
|
||||
from: chatOnlineCountNotifierProvider,
|
||||
name: r'chatOnlineCountNotifierProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$chatOnlineCountNotifierHash,
|
||||
dependencies: ChatOnlineCountNotifierFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
ChatOnlineCountNotifierFamily._allTransitiveDependencies,
|
||||
chatroomId: chatroomId,
|
||||
);
|
||||
|
||||
ChatOnlineCountNotifierProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.chatroomId,
|
||||
}) : super.internal();
|
||||
|
||||
final String chatroomId;
|
||||
|
||||
@override
|
||||
FutureOr<int> runNotifierBuild(covariant ChatOnlineCountNotifier notifier) {
|
||||
return notifier.build(chatroomId);
|
||||
}
|
||||
|
||||
@override
|
||||
Override overrideWith(ChatOnlineCountNotifier Function() create) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: ChatOnlineCountNotifierProvider._internal(
|
||||
() => create()..chatroomId = chatroomId,
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
chatroomId: chatroomId,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeAsyncNotifierProviderElement<ChatOnlineCountNotifier, int>
|
||||
createElement() {
|
||||
return _ChatOnlineCountNotifierProviderElement(this);
|
||||
}
|
||||
ChatOnlineCountNotifier create() => ChatOnlineCountNotifier();
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is ChatOnlineCountNotifierProvider &&
|
||||
other.chatroomId == chatroomId;
|
||||
other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, chatroomId.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin ChatOnlineCountNotifierRef on AutoDisposeAsyncNotifierProviderRef<int> {
|
||||
/// The parameter `chatroomId` of this provider.
|
||||
String get chatroomId;
|
||||
}
|
||||
String _$chatOnlineCountNotifierHash() =>
|
||||
r'19af8fd0e9f62c65e12a68215406776085235fa3';
|
||||
|
||||
class _ChatOnlineCountNotifierProviderElement
|
||||
extends
|
||||
AutoDisposeAsyncNotifierProviderElement<ChatOnlineCountNotifier, int>
|
||||
with ChatOnlineCountNotifierRef {
|
||||
_ChatOnlineCountNotifierProviderElement(super.provider);
|
||||
final class ChatOnlineCountNotifierFamily extends $Family
|
||||
with
|
||||
$ClassFamilyOverride<
|
||||
ChatOnlineCountNotifier,
|
||||
AsyncValue<int>,
|
||||
int,
|
||||
FutureOr<int>,
|
||||
String
|
||||
> {
|
||||
const ChatOnlineCountNotifierFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'chatOnlineCountProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
ChatOnlineCountNotifierProvider call(String chatroomId) =>
|
||||
ChatOnlineCountNotifierProvider._(argument: chatroomId, from: this);
|
||||
|
||||
@override
|
||||
String get chatroomId =>
|
||||
(origin as ChatOnlineCountNotifierProvider).chatroomId;
|
||||
String toString() => r'chatOnlineCountProvider';
|
||||
}
|
||||
|
||||
// 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
|
||||
abstract class _$ChatOnlineCountNotifier extends $AsyncNotifier<int> {
|
||||
late final _$args = ref.$arg as String;
|
||||
String get chatroomId => _$args;
|
||||
|
||||
FutureOr<int> build(String chatroomId);
|
||||
@$mustCallSuper
|
||||
@override
|
||||
void runBuild() {
|
||||
final created = build(_$args);
|
||||
final ref = this.ref as $Ref<AsyncValue<int>, int>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<AsyncValue<int>, int>,
|
||||
AsyncValue<int>,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,9 +11,32 @@ import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'chat_room.g.dart';
|
||||
|
||||
final isSyncingProvider = StateProvider.autoDispose<bool>((ref) => false);
|
||||
final chatSyncingProvider = NotifierProvider<ChatSyncingNotifier, bool>(
|
||||
ChatSyncingNotifier.new,
|
||||
);
|
||||
|
||||
final flashingMessagesProvider = StateProvider<Set<String>>((ref) => {});
|
||||
class ChatSyncingNotifier extends Notifier<bool> {
|
||||
@override
|
||||
bool build() => false;
|
||||
|
||||
void set(bool value) => state = value;
|
||||
}
|
||||
|
||||
final flashingMessagesProvider =
|
||||
NotifierProvider<FlashingMessagesNotifier, Set<String>>(
|
||||
FlashingMessagesNotifier.new,
|
||||
);
|
||||
|
||||
class FlashingMessagesNotifier extends Notifier<Set<String>> {
|
||||
@override
|
||||
Set<String> build() => {};
|
||||
|
||||
void update(Set<String> Function(Set<String>) cb) {
|
||||
state = cb(state);
|
||||
}
|
||||
|
||||
void clear() => state = {};
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class ChatRoomJoinedNotifier extends _$ChatRoomJoinedNotifier {
|
||||
|
||||
@@ -6,350 +6,277 @@ part of 'chat_room.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$chatroomInvitesHash() => r'5cd6391b09c5517ede19bacce43b45c8d71dd087';
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: type=lint, type=warning
|
||||
|
||||
/// See also [chatroomInvites].
|
||||
@ProviderFor(chatroomInvites)
|
||||
final chatroomInvitesProvider =
|
||||
AutoDisposeFutureProvider<List<SnChatMember>>.internal(
|
||||
chatroomInvites,
|
||||
name: r'chatroomInvitesProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$chatroomInvitesHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
@ProviderFor(ChatRoomJoinedNotifier)
|
||||
const chatRoomJoinedProvider = ChatRoomJoinedNotifierProvider._();
|
||||
|
||||
final class ChatRoomJoinedNotifierProvider
|
||||
extends $AsyncNotifierProvider<ChatRoomJoinedNotifier, List<SnChatRoom>> {
|
||||
const ChatRoomJoinedNotifierProvider._()
|
||||
: super(
|
||||
from: null,
|
||||
argument: null,
|
||||
retry: null,
|
||||
name: r'chatRoomJoinedProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$chatRoomJoinedNotifierHash();
|
||||
|
||||
@$internal
|
||||
@override
|
||||
ChatRoomJoinedNotifier create() => ChatRoomJoinedNotifier();
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
typedef ChatroomInvitesRef = AutoDisposeFutureProviderRef<List<SnChatMember>>;
|
||||
String _$chatRoomJoinedNotifierHash() =>
|
||||
r'c8092225ba0d9c08b2b5bca6f800f1877303b4ff';
|
||||
|
||||
/// See also [ChatRoomJoinedNotifier].
|
||||
@ProviderFor(ChatRoomJoinedNotifier)
|
||||
final chatRoomJoinedNotifierProvider = AutoDisposeAsyncNotifierProvider<
|
||||
ChatRoomJoinedNotifier,
|
||||
List<SnChatRoom>
|
||||
>.internal(
|
||||
ChatRoomJoinedNotifier.new,
|
||||
name: r'chatRoomJoinedNotifierProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$chatRoomJoinedNotifierHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$ChatRoomJoinedNotifier = AutoDisposeAsyncNotifier<List<SnChatRoom>>;
|
||||
String _$chatRoomNotifierHash() => r'1e6391e2ab4eeb114fa001aaa6b06ab2bd646f38';
|
||||
|
||||
/// 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 _$ChatRoomJoinedNotifier
|
||||
extends $AsyncNotifier<List<SnChatRoom>> {
|
||||
FutureOr<List<SnChatRoom>> build();
|
||||
@$mustCallSuper
|
||||
@override
|
||||
void runBuild() {
|
||||
final created = build();
|
||||
final ref =
|
||||
this.ref as $Ref<AsyncValue<List<SnChatRoom>>, List<SnChatRoom>>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<AsyncValue<List<SnChatRoom>>, List<SnChatRoom>>,
|
||||
AsyncValue<List<SnChatRoom>>,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
abstract class _$ChatRoomNotifier
|
||||
extends BuildlessAutoDisposeAsyncNotifier<SnChatRoom?> {
|
||||
late final String? identifier;
|
||||
|
||||
FutureOr<SnChatRoom?> build(String? identifier);
|
||||
}
|
||||
|
||||
/// See also [ChatRoomNotifier].
|
||||
@ProviderFor(ChatRoomNotifier)
|
||||
const chatRoomNotifierProvider = ChatRoomNotifierFamily();
|
||||
const chatRoomProvider = ChatRoomNotifierFamily._();
|
||||
|
||||
/// See also [ChatRoomNotifier].
|
||||
class ChatRoomNotifierFamily extends Family<AsyncValue<SnChatRoom?>> {
|
||||
/// See also [ChatRoomNotifier].
|
||||
const ChatRoomNotifierFamily();
|
||||
final class ChatRoomNotifierProvider
|
||||
extends $AsyncNotifierProvider<ChatRoomNotifier, SnChatRoom?> {
|
||||
const ChatRoomNotifierProvider._({
|
||||
required ChatRoomNotifierFamily super.from,
|
||||
required String? super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'chatRoomProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
/// See also [ChatRoomNotifier].
|
||||
ChatRoomNotifierProvider call(String? identifier) {
|
||||
return ChatRoomNotifierProvider(identifier);
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$chatRoomNotifierHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'chatRoomProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
ChatRoomNotifierProvider getProviderOverride(
|
||||
covariant ChatRoomNotifierProvider provider,
|
||||
) {
|
||||
return call(provider.identifier);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'chatRoomNotifierProvider';
|
||||
}
|
||||
|
||||
/// See also [ChatRoomNotifier].
|
||||
class ChatRoomNotifierProvider
|
||||
extends
|
||||
AutoDisposeAsyncNotifierProviderImpl<ChatRoomNotifier, SnChatRoom?> {
|
||||
/// See also [ChatRoomNotifier].
|
||||
ChatRoomNotifierProvider(String? identifier)
|
||||
: this._internal(
|
||||
() => ChatRoomNotifier()..identifier = identifier,
|
||||
from: chatRoomNotifierProvider,
|
||||
name: r'chatRoomNotifierProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$chatRoomNotifierHash,
|
||||
dependencies: ChatRoomNotifierFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
ChatRoomNotifierFamily._allTransitiveDependencies,
|
||||
identifier: identifier,
|
||||
);
|
||||
|
||||
ChatRoomNotifierProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.identifier,
|
||||
}) : super.internal();
|
||||
|
||||
final String? identifier;
|
||||
|
||||
@override
|
||||
FutureOr<SnChatRoom?> runNotifierBuild(covariant ChatRoomNotifier notifier) {
|
||||
return notifier.build(identifier);
|
||||
}
|
||||
|
||||
@override
|
||||
Override overrideWith(ChatRoomNotifier Function() create) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: ChatRoomNotifierProvider._internal(
|
||||
() => create()..identifier = identifier,
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
identifier: identifier,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeAsyncNotifierProviderElement<ChatRoomNotifier, SnChatRoom?>
|
||||
createElement() {
|
||||
return _ChatRoomNotifierProviderElement(this);
|
||||
}
|
||||
ChatRoomNotifier create() => ChatRoomNotifier();
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is ChatRoomNotifierProvider && other.identifier == identifier;
|
||||
return other is ChatRoomNotifierProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, identifier.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin ChatRoomNotifierRef on AutoDisposeAsyncNotifierProviderRef<SnChatRoom?> {
|
||||
/// The parameter `identifier` of this provider.
|
||||
String? get identifier;
|
||||
}
|
||||
String _$chatRoomNotifierHash() => r'1e6391e2ab4eeb114fa001aaa6b06ab2bd646f38';
|
||||
|
||||
class _ChatRoomNotifierProviderElement
|
||||
extends
|
||||
AutoDisposeAsyncNotifierProviderElement<ChatRoomNotifier, SnChatRoom?>
|
||||
with ChatRoomNotifierRef {
|
||||
_ChatRoomNotifierProviderElement(super.provider);
|
||||
final class ChatRoomNotifierFamily extends $Family
|
||||
with
|
||||
$ClassFamilyOverride<
|
||||
ChatRoomNotifier,
|
||||
AsyncValue<SnChatRoom?>,
|
||||
SnChatRoom?,
|
||||
FutureOr<SnChatRoom?>,
|
||||
String?
|
||||
> {
|
||||
const ChatRoomNotifierFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'chatRoomProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
ChatRoomNotifierProvider call(String? identifier) =>
|
||||
ChatRoomNotifierProvider._(argument: identifier, from: this);
|
||||
|
||||
@override
|
||||
String? get identifier => (origin as ChatRoomNotifierProvider).identifier;
|
||||
String toString() => r'chatRoomProvider';
|
||||
}
|
||||
|
||||
abstract class _$ChatRoomNotifier extends $AsyncNotifier<SnChatRoom?> {
|
||||
late final _$args = ref.$arg as String?;
|
||||
String? get identifier => _$args;
|
||||
|
||||
FutureOr<SnChatRoom?> build(String? identifier);
|
||||
@$mustCallSuper
|
||||
@override
|
||||
void runBuild() {
|
||||
final created = build(_$args);
|
||||
final ref = this.ref as $Ref<AsyncValue<SnChatRoom?>, SnChatRoom?>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<AsyncValue<SnChatRoom?>, SnChatRoom?>,
|
||||
AsyncValue<SnChatRoom?>,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
@ProviderFor(ChatRoomIdentityNotifier)
|
||||
const chatRoomIdentityProvider = ChatRoomIdentityNotifierFamily._();
|
||||
|
||||
final class ChatRoomIdentityNotifierProvider
|
||||
extends $AsyncNotifierProvider<ChatRoomIdentityNotifier, SnChatMember?> {
|
||||
const ChatRoomIdentityNotifierProvider._({
|
||||
required ChatRoomIdentityNotifierFamily super.from,
|
||||
required String? super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'chatRoomIdentityProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$chatRoomIdentityNotifierHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'chatRoomIdentityProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
ChatRoomIdentityNotifier create() => ChatRoomIdentityNotifier();
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is ChatRoomIdentityNotifierProvider &&
|
||||
other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
String _$chatRoomIdentityNotifierHash() =>
|
||||
r'27c17d55366d39be81d7209837e5c01f80a68a24';
|
||||
|
||||
abstract class _$ChatRoomIdentityNotifier
|
||||
extends BuildlessAutoDisposeAsyncNotifier<SnChatMember?> {
|
||||
late final String? identifier;
|
||||
|
||||
FutureOr<SnChatMember?> build(String? identifier);
|
||||
}
|
||||
|
||||
/// See also [ChatRoomIdentityNotifier].
|
||||
@ProviderFor(ChatRoomIdentityNotifier)
|
||||
const chatRoomIdentityNotifierProvider = ChatRoomIdentityNotifierFamily();
|
||||
|
||||
/// See also [ChatRoomIdentityNotifier].
|
||||
class ChatRoomIdentityNotifierFamily extends Family<AsyncValue<SnChatMember?>> {
|
||||
/// See also [ChatRoomIdentityNotifier].
|
||||
const ChatRoomIdentityNotifierFamily();
|
||||
|
||||
/// See also [ChatRoomIdentityNotifier].
|
||||
ChatRoomIdentityNotifierProvider call(String? identifier) {
|
||||
return ChatRoomIdentityNotifierProvider(identifier);
|
||||
}
|
||||
|
||||
@override
|
||||
ChatRoomIdentityNotifierProvider getProviderOverride(
|
||||
covariant ChatRoomIdentityNotifierProvider provider,
|
||||
) {
|
||||
return call(provider.identifier);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'chatRoomIdentityNotifierProvider';
|
||||
}
|
||||
|
||||
/// See also [ChatRoomIdentityNotifier].
|
||||
class ChatRoomIdentityNotifierProvider
|
||||
extends
|
||||
AutoDisposeAsyncNotifierProviderImpl<
|
||||
final class ChatRoomIdentityNotifierFamily extends $Family
|
||||
with
|
||||
$ClassFamilyOverride<
|
||||
ChatRoomIdentityNotifier,
|
||||
SnChatMember?
|
||||
AsyncValue<SnChatMember?>,
|
||||
SnChatMember?,
|
||||
FutureOr<SnChatMember?>,
|
||||
String?
|
||||
> {
|
||||
/// See also [ChatRoomIdentityNotifier].
|
||||
ChatRoomIdentityNotifierProvider(String? identifier)
|
||||
: this._internal(
|
||||
() => ChatRoomIdentityNotifier()..identifier = identifier,
|
||||
from: chatRoomIdentityNotifierProvider,
|
||||
name: r'chatRoomIdentityNotifierProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$chatRoomIdentityNotifierHash,
|
||||
dependencies: ChatRoomIdentityNotifierFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
ChatRoomIdentityNotifierFamily._allTransitiveDependencies,
|
||||
identifier: identifier,
|
||||
const ChatRoomIdentityNotifierFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'chatRoomIdentityProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
ChatRoomIdentityNotifierProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.identifier,
|
||||
}) : super.internal();
|
||||
|
||||
final String? identifier;
|
||||
ChatRoomIdentityNotifierProvider call(String? identifier) =>
|
||||
ChatRoomIdentityNotifierProvider._(argument: identifier, from: this);
|
||||
|
||||
@override
|
||||
FutureOr<SnChatMember?> runNotifierBuild(
|
||||
covariant ChatRoomIdentityNotifier notifier,
|
||||
) {
|
||||
return notifier.build(identifier);
|
||||
}
|
||||
String toString() => r'chatRoomIdentityProvider';
|
||||
}
|
||||
|
||||
abstract class _$ChatRoomIdentityNotifier
|
||||
extends $AsyncNotifier<SnChatMember?> {
|
||||
late final _$args = ref.$arg as String?;
|
||||
String? get identifier => _$args;
|
||||
|
||||
FutureOr<SnChatMember?> build(String? identifier);
|
||||
@$mustCallSuper
|
||||
@override
|
||||
Override overrideWith(ChatRoomIdentityNotifier Function() create) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: ChatRoomIdentityNotifierProvider._internal(
|
||||
() => create()..identifier = identifier,
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
identifier: identifier,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeAsyncNotifierProviderElement<
|
||||
ChatRoomIdentityNotifier,
|
||||
SnChatMember?
|
||||
>
|
||||
createElement() {
|
||||
return _ChatRoomIdentityNotifierProviderElement(this);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is ChatRoomIdentityNotifierProvider &&
|
||||
other.identifier == identifier;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, identifier.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
void runBuild() {
|
||||
final created = build(_$args);
|
||||
final ref = this.ref as $Ref<AsyncValue<SnChatMember?>, SnChatMember?>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<AsyncValue<SnChatMember?>, SnChatMember?>,
|
||||
AsyncValue<SnChatMember?>,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin ChatRoomIdentityNotifierRef
|
||||
on AutoDisposeAsyncNotifierProviderRef<SnChatMember?> {
|
||||
/// The parameter `identifier` of this provider.
|
||||
String? get identifier;
|
||||
}
|
||||
@ProviderFor(chatroomInvites)
|
||||
const chatroomInvitesProvider = ChatroomInvitesProvider._();
|
||||
|
||||
class _ChatRoomIdentityNotifierProviderElement
|
||||
final class ChatroomInvitesProvider
|
||||
extends
|
||||
AutoDisposeAsyncNotifierProviderElement<
|
||||
ChatRoomIdentityNotifier,
|
||||
SnChatMember?
|
||||
$FunctionalProvider<
|
||||
AsyncValue<List<SnChatMember>>,
|
||||
List<SnChatMember>,
|
||||
FutureOr<List<SnChatMember>>
|
||||
>
|
||||
with ChatRoomIdentityNotifierRef {
|
||||
_ChatRoomIdentityNotifierProviderElement(super.provider);
|
||||
with
|
||||
$FutureModifier<List<SnChatMember>>,
|
||||
$FutureProvider<List<SnChatMember>> {
|
||||
const ChatroomInvitesProvider._()
|
||||
: super(
|
||||
from: null,
|
||||
argument: null,
|
||||
retry: null,
|
||||
name: r'chatroomInvitesProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String? get identifier =>
|
||||
(origin as ChatRoomIdentityNotifierProvider).identifier;
|
||||
String debugGetCreateSourceHash() => _$chatroomInvitesHash();
|
||||
|
||||
@$internal
|
||||
@override
|
||||
$FutureProviderElement<List<SnChatMember>> $createElement(
|
||||
$ProviderPointer pointer,
|
||||
) => $FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
FutureOr<List<SnChatMember>> create(Ref ref) {
|
||||
return chatroomInvites(ref);
|
||||
}
|
||||
}
|
||||
|
||||
// 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
|
||||
String _$chatroomInvitesHash() => r'5cd6391b09c5517ede19bacce43b45c8d71dd087';
|
||||
|
||||
@@ -12,7 +12,17 @@ import "package:riverpod_annotation/riverpod_annotation.dart";
|
||||
|
||||
part 'chat_subscribe.g.dart';
|
||||
|
||||
final currentSubscribedChatIdProvider = StateProvider<String?>((ref) => null);
|
||||
final currentSubscribedChatIdProvider =
|
||||
NotifierProvider<CurrentSubscribedChatIdNotifier, String?>(
|
||||
CurrentSubscribedChatIdNotifier.new,
|
||||
);
|
||||
|
||||
class CurrentSubscribedChatIdNotifier extends Notifier<String?> {
|
||||
@override
|
||||
String? build() => null;
|
||||
|
||||
void set(String? value) => state = value;
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class ChatSubscribeNotifier extends _$ChatSubscribeNotifier {
|
||||
@@ -29,11 +39,9 @@ class ChatSubscribeNotifier extends _$ChatSubscribeNotifier {
|
||||
@override
|
||||
List<SnChatMember> build(String roomId) {
|
||||
final ws = ref.watch(websocketProvider);
|
||||
final chatRoomAsync = ref.watch(ChatRoomNotifierProvider(roomId));
|
||||
final chatIdentityAsync = ref.watch(
|
||||
ChatRoomIdentityNotifierProvider(roomId),
|
||||
);
|
||||
_messagesNotifier = ref.watch(messagesNotifierProvider(roomId).notifier);
|
||||
final chatRoomAsync = ref.watch(chatRoomProvider(roomId));
|
||||
final chatIdentityAsync = ref.watch(chatRoomIdentityProvider(roomId));
|
||||
_messagesNotifier = ref.watch(messagesProvider(roomId).notifier);
|
||||
|
||||
if (chatRoomAsync.isLoading || chatIdentityAsync.isLoading) {
|
||||
return [];
|
||||
@@ -59,7 +67,7 @@ class ChatSubscribeNotifier extends _$ChatSubscribeNotifier {
|
||||
);
|
||||
|
||||
Future.microtask(
|
||||
() => ref.read(currentSubscribedChatIdProvider.notifier).state = roomId,
|
||||
() => ref.read(currentSubscribedChatIdProvider.notifier).set(roomId),
|
||||
);
|
||||
|
||||
// Send initial read receipt
|
||||
@@ -130,7 +138,7 @@ class ChatSubscribeNotifier extends _$ChatSubscribeNotifier {
|
||||
|
||||
// Cleanup on dispose
|
||||
ref.onDispose(() {
|
||||
ref.read(currentSubscribedChatIdProvider.notifier).state = null;
|
||||
ref.read(currentSubscribedChatIdProvider.notifier).set(null);
|
||||
wsState.sendMessage(
|
||||
jsonEncode(
|
||||
WebSocketPacket(
|
||||
|
||||
@@ -6,171 +6,104 @@ part of 'chat_subscribe.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$chatSubscribeNotifierHash() =>
|
||||
r'beec1ddf2e13f6d5af8a08c2c81eff740ae9b986';
|
||||
// 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 _$ChatSubscribeNotifier
|
||||
extends BuildlessAutoDisposeNotifier<List<SnChatMember>> {
|
||||
late final String roomId;
|
||||
|
||||
List<SnChatMember> build(String roomId);
|
||||
}
|
||||
|
||||
/// See also [ChatSubscribeNotifier].
|
||||
@ProviderFor(ChatSubscribeNotifier)
|
||||
const chatSubscribeNotifierProvider = ChatSubscribeNotifierFamily();
|
||||
const chatSubscribeProvider = ChatSubscribeNotifierFamily._();
|
||||
|
||||
/// See also [ChatSubscribeNotifier].
|
||||
class ChatSubscribeNotifierFamily extends Family<List<SnChatMember>> {
|
||||
/// See also [ChatSubscribeNotifier].
|
||||
const ChatSubscribeNotifierFamily();
|
||||
final class ChatSubscribeNotifierProvider
|
||||
extends $NotifierProvider<ChatSubscribeNotifier, List<SnChatMember>> {
|
||||
const ChatSubscribeNotifierProvider._({
|
||||
required ChatSubscribeNotifierFamily super.from,
|
||||
required String super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'chatSubscribeProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
/// See also [ChatSubscribeNotifier].
|
||||
ChatSubscribeNotifierProvider call(String roomId) {
|
||||
return ChatSubscribeNotifierProvider(roomId);
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$chatSubscribeNotifierHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'chatSubscribeProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
ChatSubscribeNotifierProvider getProviderOverride(
|
||||
covariant ChatSubscribeNotifierProvider provider,
|
||||
) {
|
||||
return call(provider.roomId);
|
||||
}
|
||||
ChatSubscribeNotifier create() => ChatSubscribeNotifier();
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'chatSubscribeNotifierProvider';
|
||||
}
|
||||
|
||||
/// See also [ChatSubscribeNotifier].
|
||||
class ChatSubscribeNotifierProvider
|
||||
extends
|
||||
AutoDisposeNotifierProviderImpl<
|
||||
ChatSubscribeNotifier,
|
||||
List<SnChatMember>
|
||||
> {
|
||||
/// See also [ChatSubscribeNotifier].
|
||||
ChatSubscribeNotifierProvider(String roomId)
|
||||
: this._internal(
|
||||
() => ChatSubscribeNotifier()..roomId = roomId,
|
||||
from: chatSubscribeNotifierProvider,
|
||||
name: r'chatSubscribeNotifierProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$chatSubscribeNotifierHash,
|
||||
dependencies: ChatSubscribeNotifierFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
ChatSubscribeNotifierFamily._allTransitiveDependencies,
|
||||
roomId: roomId,
|
||||
);
|
||||
|
||||
ChatSubscribeNotifierProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.roomId,
|
||||
}) : super.internal();
|
||||
|
||||
final String roomId;
|
||||
|
||||
@override
|
||||
List<SnChatMember> runNotifierBuild(
|
||||
covariant ChatSubscribeNotifier notifier,
|
||||
) {
|
||||
return notifier.build(roomId);
|
||||
}
|
||||
|
||||
@override
|
||||
Override overrideWith(ChatSubscribeNotifier Function() create) {
|
||||
return ProviderOverride(
|
||||
/// {@macro riverpod.override_with_value}
|
||||
Override overrideWithValue(List<SnChatMember> value) {
|
||||
return $ProviderOverride(
|
||||
origin: this,
|
||||
override: ChatSubscribeNotifierProvider._internal(
|
||||
() => create()..roomId = roomId,
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
roomId: roomId,
|
||||
),
|
||||
providerOverride: $SyncValueProvider<List<SnChatMember>>(value),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeNotifierProviderElement<ChatSubscribeNotifier, List<SnChatMember>>
|
||||
createElement() {
|
||||
return _ChatSubscribeNotifierProviderElement(this);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is ChatSubscribeNotifierProvider && other.roomId == roomId;
|
||||
return other is ChatSubscribeNotifierProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, roomId.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin ChatSubscribeNotifierRef
|
||||
on AutoDisposeNotifierProviderRef<List<SnChatMember>> {
|
||||
/// The parameter `roomId` of this provider.
|
||||
String get roomId;
|
||||
}
|
||||
String _$chatSubscribeNotifierHash() =>
|
||||
r'2b9fae96eb1f96a514a074985e5efa1c13d10aa4';
|
||||
|
||||
class _ChatSubscribeNotifierProviderElement
|
||||
extends
|
||||
AutoDisposeNotifierProviderElement<
|
||||
final class ChatSubscribeNotifierFamily extends $Family
|
||||
with
|
||||
$ClassFamilyOverride<
|
||||
ChatSubscribeNotifier,
|
||||
List<SnChatMember>
|
||||
>
|
||||
with ChatSubscribeNotifierRef {
|
||||
_ChatSubscribeNotifierProviderElement(super.provider);
|
||||
List<SnChatMember>,
|
||||
List<SnChatMember>,
|
||||
List<SnChatMember>,
|
||||
String
|
||||
> {
|
||||
const ChatSubscribeNotifierFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'chatSubscribeProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
ChatSubscribeNotifierProvider call(String roomId) =>
|
||||
ChatSubscribeNotifierProvider._(argument: roomId, from: this);
|
||||
|
||||
@override
|
||||
String get roomId => (origin as ChatSubscribeNotifierProvider).roomId;
|
||||
String toString() => r'chatSubscribeProvider';
|
||||
}
|
||||
|
||||
// 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
|
||||
abstract class _$ChatSubscribeNotifier extends $Notifier<List<SnChatMember>> {
|
||||
late final _$args = ref.$arg as String;
|
||||
String get roomId => _$args;
|
||||
|
||||
List<SnChatMember> build(String roomId);
|
||||
@$mustCallSuper
|
||||
@override
|
||||
void runBuild() {
|
||||
final created = build(_$args);
|
||||
final ref = this.ref as $Ref<List<SnChatMember>, List<SnChatMember>>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<List<SnChatMember>, List<SnChatMember>>,
|
||||
List<SnChatMember>,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ class ChatSummary extends _$ChatSummary {
|
||||
final unreadToDecrement = summary.unreadCount;
|
||||
if (unreadToDecrement > 0) {
|
||||
ref
|
||||
.read(chatUnreadCountNotifierProvider.notifier)
|
||||
.read(chatUnreadCountProvider.notifier)
|
||||
.decrement(unreadToDecrement);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,40 +6,105 @@ part of 'chat_summary.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: type=lint, type=warning
|
||||
|
||||
@ProviderFor(ChatUnreadCountNotifier)
|
||||
const chatUnreadCountProvider = ChatUnreadCountNotifierProvider._();
|
||||
|
||||
final class ChatUnreadCountNotifierProvider
|
||||
extends $AsyncNotifierProvider<ChatUnreadCountNotifier, int> {
|
||||
const ChatUnreadCountNotifierProvider._()
|
||||
: super(
|
||||
from: null,
|
||||
argument: null,
|
||||
retry: null,
|
||||
name: r'chatUnreadCountProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$chatUnreadCountNotifierHash();
|
||||
|
||||
@$internal
|
||||
@override
|
||||
ChatUnreadCountNotifier create() => ChatUnreadCountNotifier();
|
||||
}
|
||||
|
||||
String _$chatUnreadCountNotifierHash() =>
|
||||
r'b8d93589dc37f772d4c3a07d9afd81c37026e57d';
|
||||
|
||||
/// See also [ChatUnreadCountNotifier].
|
||||
@ProviderFor(ChatUnreadCountNotifier)
|
||||
final chatUnreadCountNotifierProvider =
|
||||
AutoDisposeAsyncNotifierProvider<ChatUnreadCountNotifier, int>.internal(
|
||||
ChatUnreadCountNotifier.new,
|
||||
name: r'chatUnreadCountNotifierProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$chatUnreadCountNotifierHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
abstract class _$ChatUnreadCountNotifier extends $AsyncNotifier<int> {
|
||||
FutureOr<int> build();
|
||||
@$mustCallSuper
|
||||
@override
|
||||
void runBuild() {
|
||||
final created = build();
|
||||
final ref = this.ref as $Ref<AsyncValue<int>, int>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<AsyncValue<int>, int>,
|
||||
AsyncValue<int>,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
typedef _$ChatUnreadCountNotifier = AutoDisposeAsyncNotifier<int>;
|
||||
String _$chatSummaryHash() => r'78d927d40cded9d7adbc20bd6f457fdf3c852632';
|
||||
|
||||
/// See also [ChatSummary].
|
||||
@ProviderFor(ChatSummary)
|
||||
final chatSummaryProvider =
|
||||
AsyncNotifierProvider<ChatSummary, Map<String, SnChatSummary>>.internal(
|
||||
ChatSummary.new,
|
||||
name: r'chatSummaryProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$chatSummaryHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
const chatSummaryProvider = ChatSummaryProvider._();
|
||||
|
||||
typedef _$ChatSummary = AsyncNotifier<Map<String, SnChatSummary>>;
|
||||
// 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
|
||||
final class ChatSummaryProvider
|
||||
extends $AsyncNotifierProvider<ChatSummary, Map<String, SnChatSummary>> {
|
||||
const ChatSummaryProvider._()
|
||||
: super(
|
||||
from: null,
|
||||
argument: null,
|
||||
retry: null,
|
||||
name: r'chatSummaryProvider',
|
||||
isAutoDispose: false,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$chatSummaryHash();
|
||||
|
||||
@$internal
|
||||
@override
|
||||
ChatSummary create() => ChatSummary();
|
||||
}
|
||||
|
||||
String _$chatSummaryHash() => r'dfa5e487586482ebdafef8d711f74db68ee86f84';
|
||||
|
||||
abstract class _$ChatSummary
|
||||
extends $AsyncNotifier<Map<String, SnChatSummary>> {
|
||||
FutureOr<Map<String, SnChatSummary>> build();
|
||||
@$mustCallSuper
|
||||
@override
|
||||
void runBuild() {
|
||||
final created = build();
|
||||
final ref =
|
||||
this.ref
|
||||
as $Ref<
|
||||
AsyncValue<Map<String, SnChatSummary>>,
|
||||
Map<String, SnChatSummary>
|
||||
>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<
|
||||
AsyncValue<Map<String, SnChatSummary>>,
|
||||
Map<String, SnChatSummary>
|
||||
>,
|
||||
AsyncValue<Map<String, SnChatSummary>>,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,10 +52,8 @@ class MessagesNotifier extends _$MessagesNotifier {
|
||||
FutureOr<List<LocalChatMessage>> build(String roomId) async {
|
||||
_apiClient = ref.watch(apiClientProvider);
|
||||
_database = ref.watch(databaseProvider);
|
||||
final room = await ref.watch(ChatRoomNotifierProvider(roomId).future);
|
||||
final identity = await ref.watch(
|
||||
ChatRoomIdentityNotifierProvider(roomId).future,
|
||||
);
|
||||
final room = await ref.watch(chatRoomProvider(roomId).future);
|
||||
final identity = await ref.watch(chatRoomIdentityProvider(roomId).future);
|
||||
|
||||
// Initialize fetch account method for corrupted data recovery
|
||||
_fetchAccount = (String accountId) async {
|
||||
@@ -321,7 +319,7 @@ class MessagesNotifier extends _$MessagesNotifier {
|
||||
_allRemoteMessagesFetched = false;
|
||||
|
||||
talker.log('Starting message sync');
|
||||
Future.microtask(() => ref.read(isSyncingProvider.notifier).state = true);
|
||||
Future.microtask(() => ref.read(chatSyncingProvider.notifier).set(true));
|
||||
try {
|
||||
final dbMessages = await _database.getMessagesForRoom(
|
||||
_room.id,
|
||||
@@ -397,9 +395,7 @@ class MessagesNotifier extends _$MessagesNotifier {
|
||||
showErrorAlert(err);
|
||||
} finally {
|
||||
talker.log('Finished message sync');
|
||||
Future.microtask(
|
||||
() => ref.read(isSyncingProvider.notifier).state = false,
|
||||
);
|
||||
Future.microtask(() => ref.read(chatSyncingProvider.notifier).set(false));
|
||||
_isSyncing = false;
|
||||
}
|
||||
}
|
||||
@@ -496,7 +492,7 @@ class MessagesNotifier extends _$MessagesNotifier {
|
||||
if (!_hasMore || state is AsyncLoading) return;
|
||||
talker.log('Loading more messages');
|
||||
|
||||
Future.microtask(() => ref.read(isSyncingProvider.notifier).state = true);
|
||||
Future.microtask(() => ref.read(chatSyncingProvider.notifier).set(true));
|
||||
try {
|
||||
final currentMessages = state.value ?? [];
|
||||
final offset = currentMessages.length;
|
||||
@@ -519,9 +515,7 @@ class MessagesNotifier extends _$MessagesNotifier {
|
||||
);
|
||||
showErrorAlert(err);
|
||||
} finally {
|
||||
Future.microtask(
|
||||
() => ref.read(isSyncingProvider.notifier).state = false,
|
||||
);
|
||||
Future.microtask(() => ref.read(chatSyncingProvider.notifier).set(false));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,174 +6,101 @@ part of 'messages_notifier.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$messagesNotifierHash() => r'd76d799494b06fac2adc42d94b7ecd7b8d68c352';
|
||||
// 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 _$MessagesNotifier
|
||||
extends BuildlessAutoDisposeAsyncNotifier<List<LocalChatMessage>> {
|
||||
late final String roomId;
|
||||
|
||||
FutureOr<List<LocalChatMessage>> build(String roomId);
|
||||
}
|
||||
|
||||
/// See also [MessagesNotifier].
|
||||
@ProviderFor(MessagesNotifier)
|
||||
const messagesNotifierProvider = MessagesNotifierFamily();
|
||||
const messagesProvider = MessagesNotifierFamily._();
|
||||
|
||||
/// See also [MessagesNotifier].
|
||||
class MessagesNotifierFamily
|
||||
extends Family<AsyncValue<List<LocalChatMessage>>> {
|
||||
/// See also [MessagesNotifier].
|
||||
const MessagesNotifierFamily();
|
||||
final class MessagesNotifierProvider
|
||||
extends $AsyncNotifierProvider<MessagesNotifier, List<LocalChatMessage>> {
|
||||
const MessagesNotifierProvider._({
|
||||
required MessagesNotifierFamily super.from,
|
||||
required String super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'messagesProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
/// See also [MessagesNotifier].
|
||||
MessagesNotifierProvider call(String roomId) {
|
||||
return MessagesNotifierProvider(roomId);
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$messagesNotifierHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'messagesProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
MessagesNotifierProvider getProviderOverride(
|
||||
covariant MessagesNotifierProvider provider,
|
||||
) {
|
||||
return call(provider.roomId);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'messagesNotifierProvider';
|
||||
}
|
||||
|
||||
/// See also [MessagesNotifier].
|
||||
class MessagesNotifierProvider
|
||||
extends
|
||||
AutoDisposeAsyncNotifierProviderImpl<
|
||||
MessagesNotifier,
|
||||
List<LocalChatMessage>
|
||||
> {
|
||||
/// See also [MessagesNotifier].
|
||||
MessagesNotifierProvider(String roomId)
|
||||
: this._internal(
|
||||
() => MessagesNotifier()..roomId = roomId,
|
||||
from: messagesNotifierProvider,
|
||||
name: r'messagesNotifierProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$messagesNotifierHash,
|
||||
dependencies: MessagesNotifierFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
MessagesNotifierFamily._allTransitiveDependencies,
|
||||
roomId: roomId,
|
||||
);
|
||||
|
||||
MessagesNotifierProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.roomId,
|
||||
}) : super.internal();
|
||||
|
||||
final String roomId;
|
||||
|
||||
@override
|
||||
FutureOr<List<LocalChatMessage>> runNotifierBuild(
|
||||
covariant MessagesNotifier notifier,
|
||||
) {
|
||||
return notifier.build(roomId);
|
||||
}
|
||||
|
||||
@override
|
||||
Override overrideWith(MessagesNotifier Function() create) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: MessagesNotifierProvider._internal(
|
||||
() => create()..roomId = roomId,
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
roomId: roomId,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeAsyncNotifierProviderElement<
|
||||
MessagesNotifier,
|
||||
List<LocalChatMessage>
|
||||
>
|
||||
createElement() {
|
||||
return _MessagesNotifierProviderElement(this);
|
||||
}
|
||||
MessagesNotifier create() => MessagesNotifier();
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is MessagesNotifierProvider && other.roomId == roomId;
|
||||
return other is MessagesNotifierProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, roomId.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin MessagesNotifierRef
|
||||
on AutoDisposeAsyncNotifierProviderRef<List<LocalChatMessage>> {
|
||||
/// The parameter `roomId` of this provider.
|
||||
String get roomId;
|
||||
}
|
||||
String _$messagesNotifierHash() => r'2f3f19cb99357184e82d66e74a31863fcfc48856';
|
||||
|
||||
class _MessagesNotifierProviderElement
|
||||
extends
|
||||
AutoDisposeAsyncNotifierProviderElement<
|
||||
final class MessagesNotifierFamily extends $Family
|
||||
with
|
||||
$ClassFamilyOverride<
|
||||
MessagesNotifier,
|
||||
List<LocalChatMessage>
|
||||
>
|
||||
with MessagesNotifierRef {
|
||||
_MessagesNotifierProviderElement(super.provider);
|
||||
AsyncValue<List<LocalChatMessage>>,
|
||||
List<LocalChatMessage>,
|
||||
FutureOr<List<LocalChatMessage>>,
|
||||
String
|
||||
> {
|
||||
const MessagesNotifierFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'messagesProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
MessagesNotifierProvider call(String roomId) =>
|
||||
MessagesNotifierProvider._(argument: roomId, from: this);
|
||||
|
||||
@override
|
||||
String get roomId => (origin as MessagesNotifierProvider).roomId;
|
||||
String toString() => r'messagesProvider';
|
||||
}
|
||||
|
||||
// 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
|
||||
abstract class _$MessagesNotifier
|
||||
extends $AsyncNotifier<List<LocalChatMessage>> {
|
||||
late final _$args = ref.$arg as String;
|
||||
String get roomId => _$args;
|
||||
|
||||
FutureOr<List<LocalChatMessage>> build(String roomId);
|
||||
@$mustCallSuper
|
||||
@override
|
||||
void runBuild() {
|
||||
final created = build(_$args);
|
||||
final ref =
|
||||
this.ref
|
||||
as $Ref<AsyncValue<List<LocalChatMessage>>, List<LocalChatMessage>>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<
|
||||
AsyncValue<List<LocalChatMessage>>,
|
||||
List<LocalChatMessage>
|
||||
>,
|
||||
AsyncValue<List<LocalChatMessage>>,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -294,12 +294,15 @@ class AppSettingsNotifier extends _$AppSettingsNotifier {
|
||||
}
|
||||
|
||||
final updateInfoProvider =
|
||||
StateNotifierProvider<UpdateInfoNotifier, (String?, String?)>((ref) {
|
||||
return UpdateInfoNotifier();
|
||||
});
|
||||
NotifierProvider<UpdateInfoNotifier, (String?, String?)>(
|
||||
UpdateInfoNotifier.new,
|
||||
);
|
||||
|
||||
class UpdateInfoNotifier extends StateNotifier<(String?, String?)> {
|
||||
UpdateInfoNotifier() : super((null, null));
|
||||
class UpdateInfoNotifier extends Notifier<(String?, String?)> {
|
||||
@override
|
||||
(String?, String?) build() {
|
||||
return (null, null);
|
||||
}
|
||||
|
||||
void setUpdate(String newVersion, String newChangelog) {
|
||||
state = (newVersion, newChangelog);
|
||||
|
||||
@@ -29,23 +29,59 @@ Map<String, dynamic> _$ThemeColorsToJson(_ThemeColors instance) =>
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: type=lint, type=warning
|
||||
|
||||
@ProviderFor(AppSettingsNotifier)
|
||||
const appSettingsProvider = AppSettingsNotifierProvider._();
|
||||
|
||||
final class AppSettingsNotifierProvider
|
||||
extends $NotifierProvider<AppSettingsNotifier, AppSettings> {
|
||||
const AppSettingsNotifierProvider._()
|
||||
: super(
|
||||
from: null,
|
||||
argument: null,
|
||||
retry: null,
|
||||
name: r'appSettingsProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$appSettingsNotifierHash();
|
||||
|
||||
@$internal
|
||||
@override
|
||||
AppSettingsNotifier create() => AppSettingsNotifier();
|
||||
|
||||
/// {@macro riverpod.override_with_value}
|
||||
Override overrideWithValue(AppSettings value) {
|
||||
return $ProviderOverride(
|
||||
origin: this,
|
||||
providerOverride: $SyncValueProvider<AppSettings>(value),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
String _$appSettingsNotifierHash() =>
|
||||
r'22b695f2023e3251db3296858acd701f7211d757';
|
||||
|
||||
/// See also [AppSettingsNotifier].
|
||||
@ProviderFor(AppSettingsNotifier)
|
||||
final appSettingsNotifierProvider =
|
||||
AutoDisposeNotifierProvider<AppSettingsNotifier, AppSettings>.internal(
|
||||
AppSettingsNotifier.new,
|
||||
name: r'appSettingsNotifierProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$appSettingsNotifierHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$AppSettingsNotifier = AutoDisposeNotifier<AppSettings>;
|
||||
// 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
|
||||
abstract class _$AppSettingsNotifier extends $Notifier<AppSettings> {
|
||||
AppSettings build();
|
||||
@$mustCallSuper
|
||||
@override
|
||||
void runBuild() {
|
||||
final created = build();
|
||||
final ref = this.ref as $Ref<AppSettings, AppSettings>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<AppSettings, AppSettings>,
|
||||
AppSettings,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:island/models/activity.dart';
|
||||
import 'package:island/pods/network.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
@@ -6,169 +6,99 @@ part of 'event_calendar.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$eventCalendarHash() => r'3a33581c28bcd44bc5eb3abdb770171b4d275a5d';
|
||||
|
||||
/// 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));
|
||||
}
|
||||
}
|
||||
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: type=lint, type=warning
|
||||
/// Provider for fetching event calendar data
|
||||
/// This can be used anywhere in the app where calendar data is needed
|
||||
///
|
||||
/// Copied from [eventCalendar].
|
||||
|
||||
@ProviderFor(eventCalendar)
|
||||
const eventCalendarProvider = EventCalendarFamily();
|
||||
const eventCalendarProvider = EventCalendarFamily._();
|
||||
|
||||
/// Provider for fetching event calendar data
|
||||
/// This can be used anywhere in the app where calendar data is needed
|
||||
///
|
||||
/// Copied from [eventCalendar].
|
||||
class EventCalendarFamily
|
||||
extends Family<AsyncValue<List<SnEventCalendarEntry>>> {
|
||||
|
||||
final class EventCalendarProvider
|
||||
extends
|
||||
$FunctionalProvider<
|
||||
AsyncValue<List<SnEventCalendarEntry>>,
|
||||
List<SnEventCalendarEntry>,
|
||||
FutureOr<List<SnEventCalendarEntry>>
|
||||
>
|
||||
with
|
||||
$FutureModifier<List<SnEventCalendarEntry>>,
|
||||
$FutureProvider<List<SnEventCalendarEntry>> {
|
||||
/// Provider for fetching event calendar data
|
||||
/// This can be used anywhere in the app where calendar data is needed
|
||||
///
|
||||
/// Copied from [eventCalendar].
|
||||
const EventCalendarFamily();
|
||||
const EventCalendarProvider._({
|
||||
required EventCalendarFamily super.from,
|
||||
required EventCalendarQuery super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'eventCalendarProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
/// Provider for fetching event calendar data
|
||||
/// This can be used anywhere in the app where calendar data is needed
|
||||
///
|
||||
/// Copied from [eventCalendar].
|
||||
EventCalendarProvider call(EventCalendarQuery query) {
|
||||
return EventCalendarProvider(query);
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$eventCalendarHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'eventCalendarProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
EventCalendarProvider getProviderOverride(
|
||||
covariant EventCalendarProvider provider,
|
||||
) {
|
||||
return call(provider.query);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
$FutureProviderElement<List<SnEventCalendarEntry>> $createElement(
|
||||
$ProviderPointer pointer,
|
||||
) => $FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'eventCalendarProvider';
|
||||
}
|
||||
|
||||
/// Provider for fetching event calendar data
|
||||
/// This can be used anywhere in the app where calendar data is needed
|
||||
///
|
||||
/// Copied from [eventCalendar].
|
||||
class EventCalendarProvider
|
||||
extends AutoDisposeFutureProvider<List<SnEventCalendarEntry>> {
|
||||
/// Provider for fetching event calendar data
|
||||
/// This can be used anywhere in the app where calendar data is needed
|
||||
///
|
||||
/// Copied from [eventCalendar].
|
||||
EventCalendarProvider(EventCalendarQuery query)
|
||||
: this._internal(
|
||||
(ref) => eventCalendar(ref as EventCalendarRef, query),
|
||||
from: eventCalendarProvider,
|
||||
name: r'eventCalendarProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$eventCalendarHash,
|
||||
dependencies: EventCalendarFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
EventCalendarFamily._allTransitiveDependencies,
|
||||
query: query,
|
||||
);
|
||||
|
||||
EventCalendarProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.query,
|
||||
}) : super.internal();
|
||||
|
||||
final EventCalendarQuery query;
|
||||
|
||||
@override
|
||||
Override overrideWith(
|
||||
FutureOr<List<SnEventCalendarEntry>> Function(EventCalendarRef provider)
|
||||
create,
|
||||
) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: EventCalendarProvider._internal(
|
||||
(ref) => create(ref as EventCalendarRef),
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
query: query,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeFutureProviderElement<List<SnEventCalendarEntry>> createElement() {
|
||||
return _EventCalendarProviderElement(this);
|
||||
FutureOr<List<SnEventCalendarEntry>> create(Ref ref) {
|
||||
final argument = this.argument as EventCalendarQuery;
|
||||
return eventCalendar(ref, argument);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is EventCalendarProvider && other.query == query;
|
||||
return other is EventCalendarProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, query.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin EventCalendarRef
|
||||
on AutoDisposeFutureProviderRef<List<SnEventCalendarEntry>> {
|
||||
/// The parameter `query` of this provider.
|
||||
EventCalendarQuery get query;
|
||||
}
|
||||
String _$eventCalendarHash() => r'3a33581c28bcd44bc5eb3abdb770171b4d275a5d';
|
||||
|
||||
class _EventCalendarProviderElement
|
||||
extends AutoDisposeFutureProviderElement<List<SnEventCalendarEntry>>
|
||||
with EventCalendarRef {
|
||||
_EventCalendarProviderElement(super.provider);
|
||||
/// Provider for fetching event calendar data
|
||||
/// This can be used anywhere in the app where calendar data is needed
|
||||
|
||||
final class EventCalendarFamily extends $Family
|
||||
with
|
||||
$FunctionalFamilyOverride<
|
||||
FutureOr<List<SnEventCalendarEntry>>,
|
||||
EventCalendarQuery
|
||||
> {
|
||||
const EventCalendarFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'eventCalendarProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
/// Provider for fetching event calendar data
|
||||
/// This can be used anywhere in the app where calendar data is needed
|
||||
|
||||
EventCalendarProvider call(EventCalendarQuery query) =>
|
||||
EventCalendarProvider._(argument: query, from: this);
|
||||
|
||||
@override
|
||||
EventCalendarQuery get query => (origin as EventCalendarProvider).query;
|
||||
String toString() => r'eventCalendarProvider';
|
||||
}
|
||||
|
||||
// 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
|
||||
|
||||
@@ -14,7 +14,7 @@ Future<Map<String, dynamic>?> billingUsage(Ref ref) async {
|
||||
return response.data;
|
||||
}
|
||||
|
||||
final indexedCloudFileListNotifierProvider = AsyncNotifierProvider(
|
||||
final indexedCloudFileListProvider = AsyncNotifierProvider(
|
||||
IndexedCloudFileListNotifier.new,
|
||||
);
|
||||
|
||||
@@ -92,7 +92,7 @@ class IndexedCloudFileListNotifier extends AsyncNotifier<List<FileListItem>>
|
||||
}
|
||||
}
|
||||
|
||||
final unindexedFileListNotifierProvider = AsyncNotifierProvider(
|
||||
final unindexedFileListProvider = AsyncNotifierProvider(
|
||||
UnindexedFileListNotifier.new,
|
||||
);
|
||||
|
||||
|
||||
@@ -6,43 +6,87 @@ part of 'file_list.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: type=lint, type=warning
|
||||
|
||||
@ProviderFor(billingUsage)
|
||||
const billingUsageProvider = BillingUsageProvider._();
|
||||
|
||||
final class BillingUsageProvider
|
||||
extends
|
||||
$FunctionalProvider<
|
||||
AsyncValue<Map<String, dynamic>?>,
|
||||
Map<String, dynamic>?,
|
||||
FutureOr<Map<String, dynamic>?>
|
||||
>
|
||||
with
|
||||
$FutureModifier<Map<String, dynamic>?>,
|
||||
$FutureProvider<Map<String, dynamic>?> {
|
||||
const BillingUsageProvider._()
|
||||
: super(
|
||||
from: null,
|
||||
argument: null,
|
||||
retry: null,
|
||||
name: r'billingUsageProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$billingUsageHash();
|
||||
|
||||
@$internal
|
||||
@override
|
||||
$FutureProviderElement<Map<String, dynamic>?> $createElement(
|
||||
$ProviderPointer pointer,
|
||||
) => $FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
FutureOr<Map<String, dynamic>?> create(Ref ref) {
|
||||
return billingUsage(ref);
|
||||
}
|
||||
}
|
||||
|
||||
String _$billingUsageHash() => r'58d8bc774868d60781574c85d6b25869a79c57aa';
|
||||
|
||||
/// See also [billingUsage].
|
||||
@ProviderFor(billingUsage)
|
||||
final billingUsageProvider =
|
||||
AutoDisposeFutureProvider<Map<String, dynamic>?>.internal(
|
||||
billingUsage,
|
||||
name: r'billingUsageProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$billingUsageHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
typedef BillingUsageRef = AutoDisposeFutureProviderRef<Map<String, dynamic>?>;
|
||||
String _$billingQuotaHash() => r'4ec5d728e439015800abb2d0d673b5a7329cc654';
|
||||
|
||||
/// See also [billingQuota].
|
||||
@ProviderFor(billingQuota)
|
||||
final billingQuotaProvider =
|
||||
AutoDisposeFutureProvider<Map<String, dynamic>?>.internal(
|
||||
billingQuota,
|
||||
name: r'billingQuotaProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$billingQuotaHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
const billingQuotaProvider = BillingQuotaProvider._();
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
typedef BillingQuotaRef = AutoDisposeFutureProviderRef<Map<String, dynamic>?>;
|
||||
// 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
|
||||
final class BillingQuotaProvider
|
||||
extends
|
||||
$FunctionalProvider<
|
||||
AsyncValue<Map<String, dynamic>?>,
|
||||
Map<String, dynamic>?,
|
||||
FutureOr<Map<String, dynamic>?>
|
||||
>
|
||||
with
|
||||
$FutureModifier<Map<String, dynamic>?>,
|
||||
$FutureProvider<Map<String, dynamic>?> {
|
||||
const BillingQuotaProvider._()
|
||||
: super(
|
||||
from: null,
|
||||
argument: null,
|
||||
retry: null,
|
||||
name: r'billingQuotaProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$billingQuotaHash();
|
||||
|
||||
@$internal
|
||||
@override
|
||||
$FutureProviderElement<Map<String, dynamic>?> $createElement(
|
||||
$ProviderPointer pointer,
|
||||
) => $FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
FutureOr<Map<String, dynamic>?> create(Ref ref) {
|
||||
return billingQuota(ref);
|
||||
}
|
||||
}
|
||||
|
||||
String _$billingQuotaHash() => r'4ec5d728e439015800abb2d0d673b5a7329cc654';
|
||||
|
||||
@@ -13,7 +13,7 @@ final poolsProvider = FutureProvider<List<SnFilePool>>((ref) async {
|
||||
});
|
||||
|
||||
String? resolveDefaultPoolId(WidgetRef ref, List<SnFilePool> pools) {
|
||||
final settings = ref.watch(appSettingsNotifierProvider);
|
||||
final settings = ref.watch(appSettingsProvider);
|
||||
|
||||
final configuredId = settings.defaultPoolId;
|
||||
if (configuredId != null && pools.any((p) => p.id == configuredId)) {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
import 'package:island/models/reference.dart';
|
||||
import 'package:island/pods/network.dart';
|
||||
|
||||
@@ -6,148 +6,80 @@ part of 'file_references.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$fileReferencesHash() => r'd66c678c221f61978bdb242b98e6dbe31d0c204b';
|
||||
// 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));
|
||||
}
|
||||
}
|
||||
|
||||
/// See also [fileReferences].
|
||||
@ProviderFor(fileReferences)
|
||||
const fileReferencesProvider = FileReferencesFamily();
|
||||
const fileReferencesProvider = FileReferencesFamily._();
|
||||
|
||||
/// See also [fileReferences].
|
||||
class FileReferencesFamily extends Family<AsyncValue<List<Reference>>> {
|
||||
/// See also [fileReferences].
|
||||
const FileReferencesFamily();
|
||||
final class FileReferencesProvider
|
||||
extends
|
||||
$FunctionalProvider<
|
||||
AsyncValue<List<Reference>>,
|
||||
List<Reference>,
|
||||
FutureOr<List<Reference>>
|
||||
>
|
||||
with $FutureModifier<List<Reference>>, $FutureProvider<List<Reference>> {
|
||||
const FileReferencesProvider._({
|
||||
required FileReferencesFamily super.from,
|
||||
required String super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'fileReferencesProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
/// See also [fileReferences].
|
||||
FileReferencesProvider call(String fileId) {
|
||||
return FileReferencesProvider(fileId);
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$fileReferencesHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'fileReferencesProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
FileReferencesProvider getProviderOverride(
|
||||
covariant FileReferencesProvider provider,
|
||||
) {
|
||||
return call(provider.fileId);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
$FutureProviderElement<List<Reference>> $createElement(
|
||||
$ProviderPointer pointer,
|
||||
) => $FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'fileReferencesProvider';
|
||||
}
|
||||
|
||||
/// See also [fileReferences].
|
||||
class FileReferencesProvider
|
||||
extends AutoDisposeFutureProvider<List<Reference>> {
|
||||
/// See also [fileReferences].
|
||||
FileReferencesProvider(String fileId)
|
||||
: this._internal(
|
||||
(ref) => fileReferences(ref as FileReferencesRef, fileId),
|
||||
from: fileReferencesProvider,
|
||||
name: r'fileReferencesProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$fileReferencesHash,
|
||||
dependencies: FileReferencesFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
FileReferencesFamily._allTransitiveDependencies,
|
||||
fileId: fileId,
|
||||
);
|
||||
|
||||
FileReferencesProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.fileId,
|
||||
}) : super.internal();
|
||||
|
||||
final String fileId;
|
||||
|
||||
@override
|
||||
Override overrideWith(
|
||||
FutureOr<List<Reference>> Function(FileReferencesRef provider) create,
|
||||
) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: FileReferencesProvider._internal(
|
||||
(ref) => create(ref as FileReferencesRef),
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
fileId: fileId,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeFutureProviderElement<List<Reference>> createElement() {
|
||||
return _FileReferencesProviderElement(this);
|
||||
FutureOr<List<Reference>> create(Ref ref) {
|
||||
final argument = this.argument as String;
|
||||
return fileReferences(ref, argument);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is FileReferencesProvider && other.fileId == fileId;
|
||||
return other is FileReferencesProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, fileId.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin FileReferencesRef on AutoDisposeFutureProviderRef<List<Reference>> {
|
||||
/// The parameter `fileId` of this provider.
|
||||
String get fileId;
|
||||
}
|
||||
String _$fileReferencesHash() => r'd66c678c221f61978bdb242b98e6dbe31d0c204b';
|
||||
|
||||
class _FileReferencesProviderElement
|
||||
extends AutoDisposeFutureProviderElement<List<Reference>>
|
||||
with FileReferencesRef {
|
||||
_FileReferencesProviderElement(super.provider);
|
||||
final class FileReferencesFamily extends $Family
|
||||
with $FunctionalFamilyOverride<FutureOr<List<Reference>>, String> {
|
||||
const FileReferencesFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'fileReferencesProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
FileReferencesProvider call(String fileId) =>
|
||||
FileReferencesProvider._(argument: fileId, from: this);
|
||||
|
||||
@override
|
||||
String get fileId => (origin as FileReferencesProvider).fileId;
|
||||
String toString() => r'fileReferencesProvider';
|
||||
}
|
||||
|
||||
// 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,159 +6,95 @@ part of 'link_preview.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$linkPreviewHash() => r'5130593d3066155cb958d20714ee577df1f940d7';
|
||||
// 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 _$LinkPreview
|
||||
extends BuildlessAutoDisposeAsyncNotifier<SnScrappedLink?> {
|
||||
late final String url;
|
||||
|
||||
FutureOr<SnScrappedLink?> build(String url);
|
||||
}
|
||||
|
||||
/// See also [LinkPreview].
|
||||
@ProviderFor(LinkPreview)
|
||||
const linkPreviewProvider = LinkPreviewFamily();
|
||||
const linkPreviewProvider = LinkPreviewFamily._();
|
||||
|
||||
/// See also [LinkPreview].
|
||||
class LinkPreviewFamily extends Family<AsyncValue<SnScrappedLink?>> {
|
||||
/// See also [LinkPreview].
|
||||
const LinkPreviewFamily();
|
||||
final class LinkPreviewProvider
|
||||
extends $AsyncNotifierProvider<LinkPreview, SnScrappedLink?> {
|
||||
const LinkPreviewProvider._({
|
||||
required LinkPreviewFamily super.from,
|
||||
required String super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'linkPreviewProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
/// See also [LinkPreview].
|
||||
LinkPreviewProvider call(String url) {
|
||||
return LinkPreviewProvider(url);
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$linkPreviewHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'linkPreviewProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
LinkPreviewProvider getProviderOverride(
|
||||
covariant LinkPreviewProvider provider,
|
||||
) {
|
||||
return call(provider.url);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'linkPreviewProvider';
|
||||
}
|
||||
|
||||
/// See also [LinkPreview].
|
||||
class LinkPreviewProvider
|
||||
extends AutoDisposeAsyncNotifierProviderImpl<LinkPreview, SnScrappedLink?> {
|
||||
/// See also [LinkPreview].
|
||||
LinkPreviewProvider(String url)
|
||||
: this._internal(
|
||||
() => LinkPreview()..url = url,
|
||||
from: linkPreviewProvider,
|
||||
name: r'linkPreviewProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$linkPreviewHash,
|
||||
dependencies: LinkPreviewFamily._dependencies,
|
||||
allTransitiveDependencies: LinkPreviewFamily._allTransitiveDependencies,
|
||||
url: url,
|
||||
);
|
||||
|
||||
LinkPreviewProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.url,
|
||||
}) : super.internal();
|
||||
|
||||
final String url;
|
||||
|
||||
@override
|
||||
FutureOr<SnScrappedLink?> runNotifierBuild(covariant LinkPreview notifier) {
|
||||
return notifier.build(url);
|
||||
}
|
||||
|
||||
@override
|
||||
Override overrideWith(LinkPreview Function() create) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: LinkPreviewProvider._internal(
|
||||
() => create()..url = url,
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
url: url,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeAsyncNotifierProviderElement<LinkPreview, SnScrappedLink?>
|
||||
createElement() {
|
||||
return _LinkPreviewProviderElement(this);
|
||||
}
|
||||
LinkPreview create() => LinkPreview();
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is LinkPreviewProvider && other.url == url;
|
||||
return other is LinkPreviewProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, url.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin LinkPreviewRef on AutoDisposeAsyncNotifierProviderRef<SnScrappedLink?> {
|
||||
/// The parameter `url` of this provider.
|
||||
String get url;
|
||||
}
|
||||
String _$linkPreviewHash() => r'5130593d3066155cb958d20714ee577df1f940d7';
|
||||
|
||||
class _LinkPreviewProviderElement
|
||||
extends
|
||||
AutoDisposeAsyncNotifierProviderElement<LinkPreview, SnScrappedLink?>
|
||||
with LinkPreviewRef {
|
||||
_LinkPreviewProviderElement(super.provider);
|
||||
final class LinkPreviewFamily extends $Family
|
||||
with
|
||||
$ClassFamilyOverride<
|
||||
LinkPreview,
|
||||
AsyncValue<SnScrappedLink?>,
|
||||
SnScrappedLink?,
|
||||
FutureOr<SnScrappedLink?>,
|
||||
String
|
||||
> {
|
||||
const LinkPreviewFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'linkPreviewProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
LinkPreviewProvider call(String url) =>
|
||||
LinkPreviewProvider._(argument: url, from: this);
|
||||
|
||||
@override
|
||||
String get url => (origin as LinkPreviewProvider).url;
|
||||
String toString() => r'linkPreviewProvider';
|
||||
}
|
||||
|
||||
// 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
|
||||
abstract class _$LinkPreview extends $AsyncNotifier<SnScrappedLink?> {
|
||||
late final _$args = ref.$arg as String;
|
||||
String get url => _$args;
|
||||
|
||||
FutureOr<SnScrappedLink?> build(String url);
|
||||
@$mustCallSuper
|
||||
@override
|
||||
void runBuild() {
|
||||
final created = build(_$args);
|
||||
final ref = this.ref as $Ref<AsyncValue<SnScrappedLink?>, SnScrappedLink?>;
|
||||
final element =
|
||||
ref.element
|
||||
as $ClassProviderElement<
|
||||
AnyNotifier<AsyncValue<SnScrappedLink?>, SnScrappedLink?>,
|
||||
AsyncValue<SnScrappedLink?>,
|
||||
Object?,
|
||||
Object?
|
||||
>;
|
||||
element.handleValue(ref, created);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,89 +54,7 @@ mixin AsyncPaginationController<T> on AsyncNotifier<List<T>>
|
||||
|
||||
final newState = await AsyncValue.guard<List<T>>(() async {
|
||||
final elements = await fetch();
|
||||
return [...?state.valueOrNull, ...elements];
|
||||
});
|
||||
|
||||
state = newState;
|
||||
}
|
||||
}
|
||||
|
||||
mixin AutoDisposeAsyncPaginationController<T>
|
||||
on AutoDisposeAsyncNotifier<List<T>>
|
||||
implements PaginationController<T> {
|
||||
@override
|
||||
int? totalCount;
|
||||
|
||||
@override
|
||||
int get fetchedCount => state.value?.length ?? 0;
|
||||
|
||||
@override
|
||||
bool get fetchedAll => totalCount != null && fetchedCount >= totalCount!;
|
||||
|
||||
@override
|
||||
FutureOr<List<T>> build() async => fetch();
|
||||
|
||||
@override
|
||||
Future<void> refresh() async {
|
||||
totalCount = null;
|
||||
state = AsyncData<List<T>>([]);
|
||||
|
||||
final newState = await AsyncValue.guard<List<T>>(() async {
|
||||
return await fetch();
|
||||
});
|
||||
state = newState;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> fetchFurther() async {
|
||||
if (fetchedAll) return;
|
||||
|
||||
state = AsyncLoading<List<T>>();
|
||||
|
||||
final newState = await AsyncValue.guard<List<T>>(() async {
|
||||
final elements = await fetch();
|
||||
return [...?state.valueOrNull, ...elements];
|
||||
});
|
||||
|
||||
state = newState;
|
||||
}
|
||||
}
|
||||
|
||||
mixin FamilyAsyncPaginationController<T, Arg>
|
||||
on AutoDisposeFamilyAsyncNotifier<List<T>, Arg>
|
||||
implements PaginationController<T> {
|
||||
@override
|
||||
int? totalCount;
|
||||
|
||||
@override
|
||||
int get fetchedCount => state.value?.length ?? 0;
|
||||
|
||||
@override
|
||||
bool get fetchedAll => totalCount != null && fetchedCount >= totalCount!;
|
||||
|
||||
@override
|
||||
FutureOr<List<T>> build(Arg arg) async => fetch();
|
||||
|
||||
@override
|
||||
Future<void> refresh() async {
|
||||
totalCount = null;
|
||||
state = AsyncData<List<T>>([]);
|
||||
|
||||
final newState = await AsyncValue.guard<List<T>>(() async {
|
||||
return await fetch();
|
||||
});
|
||||
state = newState;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> fetchFurther() async {
|
||||
if (fetchedAll) return;
|
||||
|
||||
state = AsyncLoading<List<T>>();
|
||||
|
||||
final newState = await AsyncValue.guard<List<T>>(() async {
|
||||
final elements = await fetch();
|
||||
return [...?state.valueOrNull, ...elements];
|
||||
return [...?state.value, ...elements];
|
||||
});
|
||||
|
||||
state = newState;
|
||||
|
||||
@@ -55,16 +55,12 @@ Future<String> siteFileContentRaw(
|
||||
return resp.data is String ? resp.data : resp.data['content'] as String;
|
||||
}
|
||||
|
||||
class SiteFilesNotifier
|
||||
extends
|
||||
AutoDisposeFamilyAsyncNotifier<
|
||||
List<SnSiteFileEntry>,
|
||||
({String siteId, String? path})
|
||||
> {
|
||||
class SiteFilesNotifier extends AsyncNotifier<List<SnSiteFileEntry>> {
|
||||
final ({String siteId, String? path}) arg;
|
||||
SiteFilesNotifier(this.arg);
|
||||
|
||||
@override
|
||||
Future<List<SnSiteFileEntry>> build(
|
||||
({String siteId, String? path}) arg,
|
||||
) async {
|
||||
Future<List<SnSiteFileEntry>> build() async {
|
||||
return fetchFiles();
|
||||
}
|
||||
|
||||
@@ -152,8 +148,6 @@ class SiteFilesNotifier
|
||||
}
|
||||
}
|
||||
|
||||
final siteFilesNotifierProvider = AsyncNotifierProvider.autoDispose.family<
|
||||
SiteFilesNotifier,
|
||||
List<SnSiteFileEntry>,
|
||||
({String siteId, String? path})
|
||||
>(SiteFilesNotifier.new);
|
||||
final siteFilesNotifierProvider = AsyncNotifierProvider.autoDispose.family(
|
||||
SiteFilesNotifier.new,
|
||||
);
|
||||
|
||||
@@ -6,446 +6,257 @@ part of 'site_files.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$siteFilesHash() => r'd4029e6c160edcd454eb39ef1c19427b7f95a8d8';
|
||||
// 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));
|
||||
}
|
||||
}
|
||||
|
||||
/// See also [siteFiles].
|
||||
@ProviderFor(siteFiles)
|
||||
const siteFilesProvider = SiteFilesFamily();
|
||||
const siteFilesProvider = SiteFilesFamily._();
|
||||
|
||||
/// See also [siteFiles].
|
||||
class SiteFilesFamily extends Family<AsyncValue<List<SnSiteFileEntry>>> {
|
||||
/// See also [siteFiles].
|
||||
const SiteFilesFamily();
|
||||
final class SiteFilesProvider
|
||||
extends
|
||||
$FunctionalProvider<
|
||||
AsyncValue<List<SnSiteFileEntry>>,
|
||||
List<SnSiteFileEntry>,
|
||||
FutureOr<List<SnSiteFileEntry>>
|
||||
>
|
||||
with
|
||||
$FutureModifier<List<SnSiteFileEntry>>,
|
||||
$FutureProvider<List<SnSiteFileEntry>> {
|
||||
const SiteFilesProvider._({
|
||||
required SiteFilesFamily super.from,
|
||||
required ({String siteId, String? path}) super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'siteFilesProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
/// See also [siteFiles].
|
||||
SiteFilesProvider call({required String siteId, String? path}) {
|
||||
return SiteFilesProvider(siteId: siteId, path: path);
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$siteFilesHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'siteFilesProvider'
|
||||
''
|
||||
'$argument';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
SiteFilesProvider getProviderOverride(covariant SiteFilesProvider provider) {
|
||||
return call(siteId: provider.siteId, path: provider.path);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
$FutureProviderElement<List<SnSiteFileEntry>> $createElement(
|
||||
$ProviderPointer pointer,
|
||||
) => $FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'siteFilesProvider';
|
||||
}
|
||||
|
||||
/// See also [siteFiles].
|
||||
class SiteFilesProvider
|
||||
extends AutoDisposeFutureProvider<List<SnSiteFileEntry>> {
|
||||
/// See also [siteFiles].
|
||||
SiteFilesProvider({required String siteId, String? path})
|
||||
: this._internal(
|
||||
(ref) => siteFiles(ref as SiteFilesRef, siteId: siteId, path: path),
|
||||
from: siteFilesProvider,
|
||||
name: r'siteFilesProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$siteFilesHash,
|
||||
dependencies: SiteFilesFamily._dependencies,
|
||||
allTransitiveDependencies: SiteFilesFamily._allTransitiveDependencies,
|
||||
siteId: siteId,
|
||||
path: path,
|
||||
);
|
||||
|
||||
SiteFilesProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.siteId,
|
||||
required this.path,
|
||||
}) : super.internal();
|
||||
|
||||
final String siteId;
|
||||
final String? path;
|
||||
|
||||
@override
|
||||
Override overrideWith(
|
||||
FutureOr<List<SnSiteFileEntry>> Function(SiteFilesRef provider) create,
|
||||
) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: SiteFilesProvider._internal(
|
||||
(ref) => create(ref as SiteFilesRef),
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
siteId: siteId,
|
||||
path: path,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeFutureProviderElement<List<SnSiteFileEntry>> createElement() {
|
||||
return _SiteFilesProviderElement(this);
|
||||
FutureOr<List<SnSiteFileEntry>> create(Ref ref) {
|
||||
final argument = this.argument as ({String siteId, String? path});
|
||||
return siteFiles(ref, siteId: argument.siteId, path: argument.path);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SiteFilesProvider &&
|
||||
other.siteId == siteId &&
|
||||
other.path == path;
|
||||
return other is SiteFilesProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, siteId.hashCode);
|
||||
hash = _SystemHash.combine(hash, path.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin SiteFilesRef on AutoDisposeFutureProviderRef<List<SnSiteFileEntry>> {
|
||||
/// The parameter `siteId` of this provider.
|
||||
String get siteId;
|
||||
String _$siteFilesHash() => r'd4029e6c160edcd454eb39ef1c19427b7f95a8d8';
|
||||
|
||||
/// The parameter `path` of this provider.
|
||||
String? get path;
|
||||
final class SiteFilesFamily extends $Family
|
||||
with
|
||||
$FunctionalFamilyOverride<
|
||||
FutureOr<List<SnSiteFileEntry>>,
|
||||
({String siteId, String? path})
|
||||
> {
|
||||
const SiteFilesFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'siteFilesProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
SiteFilesProvider call({required String siteId, String? path}) =>
|
||||
SiteFilesProvider._(argument: (siteId: siteId, path: path), from: this);
|
||||
|
||||
@override
|
||||
String toString() => r'siteFilesProvider';
|
||||
}
|
||||
|
||||
class _SiteFilesProviderElement
|
||||
extends AutoDisposeFutureProviderElement<List<SnSiteFileEntry>>
|
||||
with SiteFilesRef {
|
||||
_SiteFilesProviderElement(super.provider);
|
||||
@ProviderFor(siteFileContent)
|
||||
const siteFileContentProvider = SiteFileContentFamily._();
|
||||
|
||||
final class SiteFileContentProvider
|
||||
extends
|
||||
$FunctionalProvider<
|
||||
AsyncValue<SnFileContent>,
|
||||
SnFileContent,
|
||||
FutureOr<SnFileContent>
|
||||
>
|
||||
with $FutureModifier<SnFileContent>, $FutureProvider<SnFileContent> {
|
||||
const SiteFileContentProvider._({
|
||||
required SiteFileContentFamily super.from,
|
||||
required ({String siteId, String relativePath}) super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'siteFileContentProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String get siteId => (origin as SiteFilesProvider).siteId;
|
||||
String debugGetCreateSourceHash() => _$siteFileContentHash();
|
||||
|
||||
@override
|
||||
String? get path => (origin as SiteFilesProvider).path;
|
||||
String toString() {
|
||||
return r'siteFileContentProvider'
|
||||
''
|
||||
'$argument';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
$FutureProviderElement<SnFileContent> $createElement(
|
||||
$ProviderPointer pointer,
|
||||
) => $FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
FutureOr<SnFileContent> create(Ref ref) {
|
||||
final argument = this.argument as ({String siteId, String relativePath});
|
||||
return siteFileContent(
|
||||
ref,
|
||||
siteId: argument.siteId,
|
||||
relativePath: argument.relativePath,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SiteFileContentProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
String _$siteFileContentHash() => r'b594ad4f8c54555e742ece94ee001092cb2f83d1';
|
||||
|
||||
/// See also [siteFileContent].
|
||||
@ProviderFor(siteFileContent)
|
||||
const siteFileContentProvider = SiteFileContentFamily();
|
||||
final class SiteFileContentFamily extends $Family
|
||||
with
|
||||
$FunctionalFamilyOverride<
|
||||
FutureOr<SnFileContent>,
|
||||
({String siteId, String relativePath})
|
||||
> {
|
||||
const SiteFileContentFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'siteFileContentProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
/// See also [siteFileContent].
|
||||
class SiteFileContentFamily extends Family<AsyncValue<SnFileContent>> {
|
||||
/// See also [siteFileContent].
|
||||
const SiteFileContentFamily();
|
||||
|
||||
/// See also [siteFileContent].
|
||||
SiteFileContentProvider call({
|
||||
required String siteId,
|
||||
required String relativePath,
|
||||
}) {
|
||||
return SiteFileContentProvider(siteId: siteId, relativePath: relativePath);
|
||||
}
|
||||
}) => SiteFileContentProvider._(
|
||||
argument: (siteId: siteId, relativePath: relativePath),
|
||||
from: this,
|
||||
);
|
||||
|
||||
@override
|
||||
SiteFileContentProvider getProviderOverride(
|
||||
covariant SiteFileContentProvider provider,
|
||||
) {
|
||||
return call(siteId: provider.siteId, relativePath: provider.relativePath);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'siteFileContentProvider';
|
||||
String toString() => r'siteFileContentProvider';
|
||||
}
|
||||
|
||||
/// See also [siteFileContent].
|
||||
class SiteFileContentProvider extends AutoDisposeFutureProvider<SnFileContent> {
|
||||
/// See also [siteFileContent].
|
||||
SiteFileContentProvider({
|
||||
required String siteId,
|
||||
required String relativePath,
|
||||
}) : this._internal(
|
||||
(ref) => siteFileContent(
|
||||
ref as SiteFileContentRef,
|
||||
siteId: siteId,
|
||||
relativePath: relativePath,
|
||||
),
|
||||
from: siteFileContentProvider,
|
||||
name: r'siteFileContentProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$siteFileContentHash,
|
||||
dependencies: SiteFileContentFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
SiteFileContentFamily._allTransitiveDependencies,
|
||||
siteId: siteId,
|
||||
relativePath: relativePath,
|
||||
@ProviderFor(siteFileContentRaw)
|
||||
const siteFileContentRawProvider = SiteFileContentRawFamily._();
|
||||
|
||||
final class SiteFileContentRawProvider
|
||||
extends $FunctionalProvider<AsyncValue<String>, String, FutureOr<String>>
|
||||
with $FutureModifier<String>, $FutureProvider<String> {
|
||||
const SiteFileContentRawProvider._({
|
||||
required SiteFileContentRawFamily super.from,
|
||||
required ({String siteId, String relativePath}) super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'siteFileContentRawProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
SiteFileContentProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.siteId,
|
||||
required this.relativePath,
|
||||
}) : super.internal();
|
||||
|
||||
final String siteId;
|
||||
final String relativePath;
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$siteFileContentRawHash();
|
||||
|
||||
@override
|
||||
Override overrideWith(
|
||||
FutureOr<SnFileContent> Function(SiteFileContentRef provider) create,
|
||||
) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: SiteFileContentProvider._internal(
|
||||
(ref) => create(ref as SiteFileContentRef),
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
siteId: siteId,
|
||||
relativePath: relativePath,
|
||||
),
|
||||
String toString() {
|
||||
return r'siteFileContentRawProvider'
|
||||
''
|
||||
'$argument';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
$FutureProviderElement<String> $createElement($ProviderPointer pointer) =>
|
||||
$FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
FutureOr<String> create(Ref ref) {
|
||||
final argument = this.argument as ({String siteId, String relativePath});
|
||||
return siteFileContentRaw(
|
||||
ref,
|
||||
siteId: argument.siteId,
|
||||
relativePath: argument.relativePath,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeFutureProviderElement<SnFileContent> createElement() {
|
||||
return _SiteFileContentProviderElement(this);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SiteFileContentProvider &&
|
||||
other.siteId == siteId &&
|
||||
other.relativePath == relativePath;
|
||||
return other is SiteFileContentRawProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, siteId.hashCode);
|
||||
hash = _SystemHash.combine(hash, relativePath.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin SiteFileContentRef on AutoDisposeFutureProviderRef<SnFileContent> {
|
||||
/// The parameter `siteId` of this provider.
|
||||
String get siteId;
|
||||
|
||||
/// The parameter `relativePath` of this provider.
|
||||
String get relativePath;
|
||||
}
|
||||
|
||||
class _SiteFileContentProviderElement
|
||||
extends AutoDisposeFutureProviderElement<SnFileContent>
|
||||
with SiteFileContentRef {
|
||||
_SiteFileContentProviderElement(super.provider);
|
||||
|
||||
@override
|
||||
String get siteId => (origin as SiteFileContentProvider).siteId;
|
||||
@override
|
||||
String get relativePath => (origin as SiteFileContentProvider).relativePath;
|
||||
}
|
||||
|
||||
String _$siteFileContentRawHash() =>
|
||||
r'd0331c30698a9f4b90fe9b79273ff5914fa46616';
|
||||
|
||||
/// See also [siteFileContentRaw].
|
||||
@ProviderFor(siteFileContentRaw)
|
||||
const siteFileContentRawProvider = SiteFileContentRawFamily();
|
||||
final class SiteFileContentRawFamily extends $Family
|
||||
with
|
||||
$FunctionalFamilyOverride<
|
||||
FutureOr<String>,
|
||||
({String siteId, String relativePath})
|
||||
> {
|
||||
const SiteFileContentRawFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'siteFileContentRawProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
/// See also [siteFileContentRaw].
|
||||
class SiteFileContentRawFamily extends Family<AsyncValue<String>> {
|
||||
/// See also [siteFileContentRaw].
|
||||
const SiteFileContentRawFamily();
|
||||
|
||||
/// See also [siteFileContentRaw].
|
||||
SiteFileContentRawProvider call({
|
||||
required String siteId,
|
||||
required String relativePath,
|
||||
}) {
|
||||
return SiteFileContentRawProvider(
|
||||
siteId: siteId,
|
||||
relativePath: relativePath,
|
||||
);
|
||||
}
|
||||
}) => SiteFileContentRawProvider._(
|
||||
argument: (siteId: siteId, relativePath: relativePath),
|
||||
from: this,
|
||||
);
|
||||
|
||||
@override
|
||||
SiteFileContentRawProvider getProviderOverride(
|
||||
covariant SiteFileContentRawProvider provider,
|
||||
) {
|
||||
return call(siteId: provider.siteId, relativePath: provider.relativePath);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'siteFileContentRawProvider';
|
||||
String toString() => r'siteFileContentRawProvider';
|
||||
}
|
||||
|
||||
/// See also [siteFileContentRaw].
|
||||
class SiteFileContentRawProvider extends AutoDisposeFutureProvider<String> {
|
||||
/// See also [siteFileContentRaw].
|
||||
SiteFileContentRawProvider({
|
||||
required String siteId,
|
||||
required String relativePath,
|
||||
}) : this._internal(
|
||||
(ref) => siteFileContentRaw(
|
||||
ref as SiteFileContentRawRef,
|
||||
siteId: siteId,
|
||||
relativePath: relativePath,
|
||||
),
|
||||
from: siteFileContentRawProvider,
|
||||
name: r'siteFileContentRawProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$siteFileContentRawHash,
|
||||
dependencies: SiteFileContentRawFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
SiteFileContentRawFamily._allTransitiveDependencies,
|
||||
siteId: siteId,
|
||||
relativePath: relativePath,
|
||||
);
|
||||
|
||||
SiteFileContentRawProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.siteId,
|
||||
required this.relativePath,
|
||||
}) : super.internal();
|
||||
|
||||
final String siteId;
|
||||
final String relativePath;
|
||||
|
||||
@override
|
||||
Override overrideWith(
|
||||
FutureOr<String> Function(SiteFileContentRawRef provider) create,
|
||||
) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: SiteFileContentRawProvider._internal(
|
||||
(ref) => create(ref as SiteFileContentRawRef),
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
siteId: siteId,
|
||||
relativePath: relativePath,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeFutureProviderElement<String> createElement() {
|
||||
return _SiteFileContentRawProviderElement(this);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SiteFileContentRawProvider &&
|
||||
other.siteId == siteId &&
|
||||
other.relativePath == relativePath;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, siteId.hashCode);
|
||||
hash = _SystemHash.combine(hash, relativePath.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin SiteFileContentRawRef on AutoDisposeFutureProviderRef<String> {
|
||||
/// The parameter `siteId` of this provider.
|
||||
String get siteId;
|
||||
|
||||
/// The parameter `relativePath` of this provider.
|
||||
String get relativePath;
|
||||
}
|
||||
|
||||
class _SiteFileContentRawProviderElement
|
||||
extends AutoDisposeFutureProviderElement<String>
|
||||
with SiteFileContentRawRef {
|
||||
_SiteFileContentRawProviderElement(super.provider);
|
||||
|
||||
@override
|
||||
String get siteId => (origin as SiteFileContentRawProvider).siteId;
|
||||
@override
|
||||
String get relativePath =>
|
||||
(origin as SiteFileContentRawProvider).relativePath;
|
||||
}
|
||||
|
||||
// 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
|
||||
|
||||
@@ -25,16 +25,12 @@ Future<SnPublicationPage> sitePage(Ref ref, String pageId) async {
|
||||
return SnPublicationPage.fromJson(resp.data);
|
||||
}
|
||||
|
||||
class SitePagesNotifier
|
||||
extends
|
||||
AutoDisposeFamilyAsyncNotifier<
|
||||
List<SnPublicationPage>,
|
||||
({String pubName, String siteSlug})
|
||||
> {
|
||||
class SitePagesNotifier extends AsyncNotifier<List<SnPublicationPage>> {
|
||||
final ({String pubName, String siteSlug}) arg;
|
||||
SitePagesNotifier(this.arg);
|
||||
|
||||
@override
|
||||
Future<List<SnPublicationPage>> build(
|
||||
({String pubName, String siteSlug}) arg,
|
||||
) async {
|
||||
Future<List<SnPublicationPage>> build() async {
|
||||
return fetchPages();
|
||||
}
|
||||
|
||||
|
||||
@@ -6,275 +6,163 @@ part of 'site_pages.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$sitePagesHash() => r'5e084e9694ad665e9b238c6a747c6c6e99c5eb03';
|
||||
// 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));
|
||||
}
|
||||
}
|
||||
|
||||
/// See also [sitePages].
|
||||
@ProviderFor(sitePages)
|
||||
const sitePagesProvider = SitePagesFamily();
|
||||
const sitePagesProvider = SitePagesFamily._();
|
||||
|
||||
/// See also [sitePages].
|
||||
class SitePagesFamily extends Family<AsyncValue<List<SnPublicationPage>>> {
|
||||
/// See also [sitePages].
|
||||
const SitePagesFamily();
|
||||
final class SitePagesProvider
|
||||
extends
|
||||
$FunctionalProvider<
|
||||
AsyncValue<List<SnPublicationPage>>,
|
||||
List<SnPublicationPage>,
|
||||
FutureOr<List<SnPublicationPage>>
|
||||
>
|
||||
with
|
||||
$FutureModifier<List<SnPublicationPage>>,
|
||||
$FutureProvider<List<SnPublicationPage>> {
|
||||
const SitePagesProvider._({
|
||||
required SitePagesFamily super.from,
|
||||
required (String, String) super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'sitePagesProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
/// See also [sitePages].
|
||||
SitePagesProvider call(String pubName, String siteSlug) {
|
||||
return SitePagesProvider(pubName, siteSlug);
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$sitePagesHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'sitePagesProvider'
|
||||
''
|
||||
'$argument';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
SitePagesProvider getProviderOverride(covariant SitePagesProvider provider) {
|
||||
return call(provider.pubName, provider.siteSlug);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
$FutureProviderElement<List<SnPublicationPage>> $createElement(
|
||||
$ProviderPointer pointer,
|
||||
) => $FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'sitePagesProvider';
|
||||
}
|
||||
|
||||
/// See also [sitePages].
|
||||
class SitePagesProvider
|
||||
extends AutoDisposeFutureProvider<List<SnPublicationPage>> {
|
||||
/// See also [sitePages].
|
||||
SitePagesProvider(String pubName, String siteSlug)
|
||||
: this._internal(
|
||||
(ref) => sitePages(ref as SitePagesRef, pubName, siteSlug),
|
||||
from: sitePagesProvider,
|
||||
name: r'sitePagesProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$sitePagesHash,
|
||||
dependencies: SitePagesFamily._dependencies,
|
||||
allTransitiveDependencies: SitePagesFamily._allTransitiveDependencies,
|
||||
pubName: pubName,
|
||||
siteSlug: siteSlug,
|
||||
);
|
||||
|
||||
SitePagesProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.pubName,
|
||||
required this.siteSlug,
|
||||
}) : super.internal();
|
||||
|
||||
final String pubName;
|
||||
final String siteSlug;
|
||||
|
||||
@override
|
||||
Override overrideWith(
|
||||
FutureOr<List<SnPublicationPage>> Function(SitePagesRef provider) create,
|
||||
) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: SitePagesProvider._internal(
|
||||
(ref) => create(ref as SitePagesRef),
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
pubName: pubName,
|
||||
siteSlug: siteSlug,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeFutureProviderElement<List<SnPublicationPage>> createElement() {
|
||||
return _SitePagesProviderElement(this);
|
||||
FutureOr<List<SnPublicationPage>> create(Ref ref) {
|
||||
final argument = this.argument as (String, String);
|
||||
return sitePages(ref, argument.$1, argument.$2);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SitePagesProvider &&
|
||||
other.pubName == pubName &&
|
||||
other.siteSlug == siteSlug;
|
||||
return other is SitePagesProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, pubName.hashCode);
|
||||
hash = _SystemHash.combine(hash, siteSlug.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin SitePagesRef on AutoDisposeFutureProviderRef<List<SnPublicationPage>> {
|
||||
/// The parameter `pubName` of this provider.
|
||||
String get pubName;
|
||||
String _$sitePagesHash() => r'5e084e9694ad665e9b238c6a747c6c6e99c5eb03';
|
||||
|
||||
/// The parameter `siteSlug` of this provider.
|
||||
String get siteSlug;
|
||||
final class SitePagesFamily extends $Family
|
||||
with
|
||||
$FunctionalFamilyOverride<
|
||||
FutureOr<List<SnPublicationPage>>,
|
||||
(String, String)
|
||||
> {
|
||||
const SitePagesFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'sitePagesProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
SitePagesProvider call(String pubName, String siteSlug) =>
|
||||
SitePagesProvider._(argument: (pubName, siteSlug), from: this);
|
||||
|
||||
@override
|
||||
String toString() => r'sitePagesProvider';
|
||||
}
|
||||
|
||||
class _SitePagesProviderElement
|
||||
extends AutoDisposeFutureProviderElement<List<SnPublicationPage>>
|
||||
with SitePagesRef {
|
||||
_SitePagesProviderElement(super.provider);
|
||||
@ProviderFor(sitePage)
|
||||
const sitePageProvider = SitePageFamily._();
|
||||
|
||||
final class SitePageProvider
|
||||
extends
|
||||
$FunctionalProvider<
|
||||
AsyncValue<SnPublicationPage>,
|
||||
SnPublicationPage,
|
||||
FutureOr<SnPublicationPage>
|
||||
>
|
||||
with
|
||||
$FutureModifier<SnPublicationPage>,
|
||||
$FutureProvider<SnPublicationPage> {
|
||||
const SitePageProvider._({
|
||||
required SitePageFamily super.from,
|
||||
required String super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'sitePageProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String get pubName => (origin as SitePagesProvider).pubName;
|
||||
String debugGetCreateSourceHash() => _$sitePageHash();
|
||||
|
||||
@override
|
||||
String get siteSlug => (origin as SitePagesProvider).siteSlug;
|
||||
String toString() {
|
||||
return r'sitePageProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
$FutureProviderElement<SnPublicationPage> $createElement(
|
||||
$ProviderPointer pointer,
|
||||
) => $FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
FutureOr<SnPublicationPage> create(Ref ref) {
|
||||
final argument = this.argument as String;
|
||||
return sitePage(ref, argument);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SitePageProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
String _$sitePageHash() => r'542f70c5b103fe34d7cf7eb0821d52f017022efc';
|
||||
|
||||
/// See also [sitePage].
|
||||
@ProviderFor(sitePage)
|
||||
const sitePageProvider = SitePageFamily();
|
||||
|
||||
/// See also [sitePage].
|
||||
class SitePageFamily extends Family<AsyncValue<SnPublicationPage>> {
|
||||
/// See also [sitePage].
|
||||
const SitePageFamily();
|
||||
|
||||
/// See also [sitePage].
|
||||
SitePageProvider call(String pageId) {
|
||||
return SitePageProvider(pageId);
|
||||
}
|
||||
|
||||
@override
|
||||
SitePageProvider getProviderOverride(covariant SitePageProvider provider) {
|
||||
return call(provider.pageId);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'sitePageProvider';
|
||||
}
|
||||
|
||||
/// See also [sitePage].
|
||||
class SitePageProvider extends AutoDisposeFutureProvider<SnPublicationPage> {
|
||||
/// See also [sitePage].
|
||||
SitePageProvider(String pageId)
|
||||
: this._internal(
|
||||
(ref) => sitePage(ref as SitePageRef, pageId),
|
||||
from: sitePageProvider,
|
||||
final class SitePageFamily extends $Family
|
||||
with $FunctionalFamilyOverride<FutureOr<SnPublicationPage>, String> {
|
||||
const SitePageFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'sitePageProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$sitePageHash,
|
||||
dependencies: SitePageFamily._dependencies,
|
||||
allTransitiveDependencies: SitePageFamily._allTransitiveDependencies,
|
||||
pageId: pageId,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
SitePageProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.pageId,
|
||||
}) : super.internal();
|
||||
|
||||
final String pageId;
|
||||
SitePageProvider call(String pageId) =>
|
||||
SitePageProvider._(argument: pageId, from: this);
|
||||
|
||||
@override
|
||||
Override overrideWith(
|
||||
FutureOr<SnPublicationPage> Function(SitePageRef provider) create,
|
||||
) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: SitePageProvider._internal(
|
||||
(ref) => create(ref as SitePageRef),
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
pageId: pageId,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeFutureProviderElement<SnPublicationPage> createElement() {
|
||||
return _SitePageProviderElement(this);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SitePageProvider && other.pageId == pageId;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, pageId.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
String toString() => r'sitePageProvider';
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin SitePageRef on AutoDisposeFutureProviderRef<SnPublicationPage> {
|
||||
/// The parameter `pageId` of this provider.
|
||||
String get pageId;
|
||||
}
|
||||
|
||||
class _SitePageProviderElement
|
||||
extends AutoDisposeFutureProviderElement<SnPublicationPage>
|
||||
with SitePageRef {
|
||||
_SitePageProviderElement(super.provider);
|
||||
|
||||
@override
|
||||
String get pageId => (origin as SitePageProvider).pageId;
|
||||
}
|
||||
|
||||
// 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
|
||||
|
||||
@@ -4,16 +4,12 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:island/models/publication_site.dart';
|
||||
import 'package:island/pods/network.dart';
|
||||
|
||||
class SiteNotifier
|
||||
extends
|
||||
AutoDisposeFamilyAsyncNotifier<
|
||||
SnPublicationSite,
|
||||
({String pubName, String? siteId})
|
||||
> {
|
||||
class SiteNotifier extends AsyncNotifier<SnPublicationSite> {
|
||||
final ({String pubName, String? siteId}) arg;
|
||||
SiteNotifier(this.arg);
|
||||
|
||||
@override
|
||||
FutureOr<SnPublicationSite> build(
|
||||
({String pubName, String? siteId}) arg,
|
||||
) async {
|
||||
FutureOr<SnPublicationSite> build() async {
|
||||
if (arg.siteId == null || arg.siteId!.isEmpty) {
|
||||
return SnPublicationSite(
|
||||
id: '',
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:island/pods/config.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'theme.g.dart';
|
||||
|
||||
@riverpod
|
||||
ThemeSet theme(Ref ref) {
|
||||
final settings = ref.watch(appSettingsNotifierProvider);
|
||||
final settings = ref.watch(appSettingsProvider);
|
||||
return createAppThemeSet(settings);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,21 +6,46 @@ part of 'theme.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$themeHash() => r'a12dbf8b83d75713b7ae4c68e9cdd1a1cc3a35f0';
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: type=lint, type=warning
|
||||
|
||||
/// See also [theme].
|
||||
@ProviderFor(theme)
|
||||
final themeProvider = AutoDisposeProvider<ThemeSet>.internal(
|
||||
theme,
|
||||
name: r'themeProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product') ? null : _$themeHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
const themeProvider = ThemeProvider._();
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
typedef ThemeRef = AutoDisposeProviderRef<ThemeSet>;
|
||||
// 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
|
||||
final class ThemeProvider
|
||||
extends $FunctionalProvider<ThemeSet, ThemeSet, ThemeSet>
|
||||
with $Provider<ThemeSet> {
|
||||
const ThemeProvider._()
|
||||
: super(
|
||||
from: null,
|
||||
argument: null,
|
||||
retry: null,
|
||||
name: r'themeProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$themeHash();
|
||||
|
||||
@$internal
|
||||
@override
|
||||
$ProviderElement<ThemeSet> $createElement($ProviderPointer pointer) =>
|
||||
$ProviderElement(pointer);
|
||||
|
||||
@override
|
||||
ThemeSet create(Ref ref) {
|
||||
return theme(ref);
|
||||
}
|
||||
|
||||
/// {@macro riverpod.override_with_value}
|
||||
Override overrideWithValue(ThemeSet value) {
|
||||
return $ProviderOverride(
|
||||
origin: this,
|
||||
providerOverride: $SyncValueProvider<ThemeSet>(value),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
String _$themeHash() => r'5b41b68e2fc59431bb195ff75f63383982f7730f';
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:island/models/activity.dart';
|
||||
import 'package:island/pods/network.dart';
|
||||
import 'package:island/pods/paging.dart';
|
||||
|
||||
final activityListNotifierProvider =
|
||||
final activityListProvider =
|
||||
AsyncNotifierProvider<ActivityListNotifier, List<SnTimelineEvent>>(
|
||||
ActivityListNotifier.new,
|
||||
);
|
||||
@@ -22,8 +22,7 @@ class ActivityListNotifier extends AsyncNotifier<List<SnTimelineEvent>>
|
||||
Future<List<SnTimelineEvent>> fetch() async {
|
||||
final client = ref.read(apiClientProvider);
|
||||
|
||||
final cursor =
|
||||
state.valueOrNull?.lastOrNull?.createdAt.toUtc().toIso8601String();
|
||||
final cursor = state.value?.lastOrNull?.createdAt.toUtc().toIso8601String();
|
||||
|
||||
final queryParameters = {
|
||||
if (cursor != null) 'cursor': cursor,
|
||||
@@ -46,15 +45,13 @@ class ActivityListNotifier extends AsyncNotifier<List<SnTimelineEvent>>
|
||||
final hasMore = (items.firstOrNull?.type ?? 'empty') != 'empty';
|
||||
|
||||
totalCount =
|
||||
(state.valueOrNull?.length ?? 0) +
|
||||
items.length +
|
||||
(hasMore ? pageSize : 0);
|
||||
(state.value?.length ?? 0) + items.length + (hasMore ? pageSize : 0);
|
||||
|
||||
return items;
|
||||
}
|
||||
|
||||
void updateOne(int index, SnTimelineEvent activity) {
|
||||
final currentState = state.valueOrNull;
|
||||
final currentState = state.value;
|
||||
if (currentState == null) return;
|
||||
|
||||
final updatedItems = [...currentState];
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:island/pods/network.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
|
||||
@@ -6,269 +6,152 @@ part of 'translate.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$translateStringHash() => r'51d638cf07cbf3ffa9469298f5bd9c667bc0ccb7';
|
||||
// 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));
|
||||
}
|
||||
}
|
||||
|
||||
/// See also [translateString].
|
||||
@ProviderFor(translateString)
|
||||
const translateStringProvider = TranslateStringFamily();
|
||||
const translateStringProvider = TranslateStringFamily._();
|
||||
|
||||
/// See also [translateString].
|
||||
class TranslateStringFamily extends Family<AsyncValue<String>> {
|
||||
/// See also [translateString].
|
||||
const TranslateStringFamily();
|
||||
final class TranslateStringProvider
|
||||
extends $FunctionalProvider<AsyncValue<String>, String, FutureOr<String>>
|
||||
with $FutureModifier<String>, $FutureProvider<String> {
|
||||
const TranslateStringProvider._({
|
||||
required TranslateStringFamily super.from,
|
||||
required TranslateQuery super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'translateStringProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
/// See also [translateString].
|
||||
TranslateStringProvider call(TranslateQuery query) {
|
||||
return TranslateStringProvider(query);
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$translateStringHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'translateStringProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
TranslateStringProvider getProviderOverride(
|
||||
covariant TranslateStringProvider provider,
|
||||
) {
|
||||
return call(provider.query);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
$FutureProviderElement<String> $createElement($ProviderPointer pointer) =>
|
||||
$FutureProviderElement(pointer);
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'translateStringProvider';
|
||||
}
|
||||
|
||||
/// See also [translateString].
|
||||
class TranslateStringProvider extends AutoDisposeFutureProvider<String> {
|
||||
/// See also [translateString].
|
||||
TranslateStringProvider(TranslateQuery query)
|
||||
: this._internal(
|
||||
(ref) => translateString(ref as TranslateStringRef, query),
|
||||
from: translateStringProvider,
|
||||
name: r'translateStringProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$translateStringHash,
|
||||
dependencies: TranslateStringFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
TranslateStringFamily._allTransitiveDependencies,
|
||||
query: query,
|
||||
);
|
||||
|
||||
TranslateStringProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.query,
|
||||
}) : super.internal();
|
||||
|
||||
final TranslateQuery query;
|
||||
|
||||
@override
|
||||
Override overrideWith(
|
||||
FutureOr<String> Function(TranslateStringRef provider) create,
|
||||
) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: TranslateStringProvider._internal(
|
||||
(ref) => create(ref as TranslateStringRef),
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
query: query,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeFutureProviderElement<String> createElement() {
|
||||
return _TranslateStringProviderElement(this);
|
||||
FutureOr<String> create(Ref ref) {
|
||||
final argument = this.argument as TranslateQuery;
|
||||
return translateString(ref, argument);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is TranslateStringProvider && other.query == query;
|
||||
return other is TranslateStringProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, query.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin TranslateStringRef on AutoDisposeFutureProviderRef<String> {
|
||||
/// The parameter `query` of this provider.
|
||||
TranslateQuery get query;
|
||||
}
|
||||
String _$translateStringHash() => r'51d638cf07cbf3ffa9469298f5bd9c667bc0ccb7';
|
||||
|
||||
class _TranslateStringProviderElement
|
||||
extends AutoDisposeFutureProviderElement<String>
|
||||
with TranslateStringRef {
|
||||
_TranslateStringProviderElement(super.provider);
|
||||
final class TranslateStringFamily extends $Family
|
||||
with $FunctionalFamilyOverride<FutureOr<String>, TranslateQuery> {
|
||||
const TranslateStringFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'translateStringProvider',
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
TranslateStringProvider call(TranslateQuery query) =>
|
||||
TranslateStringProvider._(argument: query, from: this);
|
||||
|
||||
@override
|
||||
TranslateQuery get query => (origin as TranslateStringProvider).query;
|
||||
String toString() => r'translateStringProvider';
|
||||
}
|
||||
|
||||
@ProviderFor(detectStringLanguage)
|
||||
const detectStringLanguageProvider = DetectStringLanguageFamily._();
|
||||
|
||||
final class DetectStringLanguageProvider
|
||||
extends $FunctionalProvider<String?, String?, String?>
|
||||
with $Provider<String?> {
|
||||
const DetectStringLanguageProvider._({
|
||||
required DetectStringLanguageFamily super.from,
|
||||
required String super.argument,
|
||||
}) : super(
|
||||
retry: null,
|
||||
name: r'detectStringLanguageProvider',
|
||||
isAutoDispose: true,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
@override
|
||||
String debugGetCreateSourceHash() => _$detectStringLanguageHash();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return r'detectStringLanguageProvider'
|
||||
''
|
||||
'($argument)';
|
||||
}
|
||||
|
||||
@$internal
|
||||
@override
|
||||
$ProviderElement<String?> $createElement($ProviderPointer pointer) =>
|
||||
$ProviderElement(pointer);
|
||||
|
||||
@override
|
||||
String? create(Ref ref) {
|
||||
final argument = this.argument as String;
|
||||
return detectStringLanguage(ref, argument);
|
||||
}
|
||||
|
||||
/// {@macro riverpod.override_with_value}
|
||||
Override overrideWithValue(String? value) {
|
||||
return $ProviderOverride(
|
||||
origin: this,
|
||||
providerOverride: $SyncValueProvider<String?>(value),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is DetectStringLanguageProvider && other.argument == argument;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
return argument.hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
String _$detectStringLanguageHash() =>
|
||||
r'24fbf52edbbffcc8dc4f09f7206f82d69728e703';
|
||||
|
||||
/// See also [detectStringLanguage].
|
||||
@ProviderFor(detectStringLanguage)
|
||||
const detectStringLanguageProvider = DetectStringLanguageFamily();
|
||||
|
||||
/// See also [detectStringLanguage].
|
||||
class DetectStringLanguageFamily extends Family<String?> {
|
||||
/// See also [detectStringLanguage].
|
||||
const DetectStringLanguageFamily();
|
||||
|
||||
/// See also [detectStringLanguage].
|
||||
DetectStringLanguageProvider call(String text) {
|
||||
return DetectStringLanguageProvider(text);
|
||||
}
|
||||
|
||||
@override
|
||||
DetectStringLanguageProvider getProviderOverride(
|
||||
covariant DetectStringLanguageProvider provider,
|
||||
) {
|
||||
return call(provider.text);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'detectStringLanguageProvider';
|
||||
}
|
||||
|
||||
/// See also [detectStringLanguage].
|
||||
class DetectStringLanguageProvider extends AutoDisposeProvider<String?> {
|
||||
/// See also [detectStringLanguage].
|
||||
DetectStringLanguageProvider(String text)
|
||||
: this._internal(
|
||||
(ref) => detectStringLanguage(ref as DetectStringLanguageRef, text),
|
||||
from: detectStringLanguageProvider,
|
||||
final class DetectStringLanguageFamily extends $Family
|
||||
with $FunctionalFamilyOverride<String?, String> {
|
||||
const DetectStringLanguageFamily._()
|
||||
: super(
|
||||
retry: null,
|
||||
name: r'detectStringLanguageProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$detectStringLanguageHash,
|
||||
dependencies: DetectStringLanguageFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
DetectStringLanguageFamily._allTransitiveDependencies,
|
||||
text: text,
|
||||
dependencies: null,
|
||||
$allTransitiveDependencies: null,
|
||||
isAutoDispose: true,
|
||||
);
|
||||
|
||||
DetectStringLanguageProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.text,
|
||||
}) : super.internal();
|
||||
|
||||
final String text;
|
||||
DetectStringLanguageProvider call(String text) =>
|
||||
DetectStringLanguageProvider._(argument: text, from: this);
|
||||
|
||||
@override
|
||||
Override overrideWith(
|
||||
String? Function(DetectStringLanguageRef provider) create,
|
||||
) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: DetectStringLanguageProvider._internal(
|
||||
(ref) => create(ref as DetectStringLanguageRef),
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
text: text,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeProviderElement<String?> createElement() {
|
||||
return _DetectStringLanguageProviderElement(this);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is DetectStringLanguageProvider && other.text == text;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, text.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
String toString() => r'detectStringLanguageProvider';
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin DetectStringLanguageRef on AutoDisposeProviderRef<String?> {
|
||||
/// The parameter `text` of this provider.
|
||||
String get text;
|
||||
}
|
||||
|
||||
class _DetectStringLanguageProviderElement
|
||||
extends AutoDisposeProviderElement<String?>
|
||||
with DetectStringLanguageRef {
|
||||
_DetectStringLanguageProviderElement(super.provider);
|
||||
|
||||
@override
|
||||
String get text => (origin as DetectStringLanguageProvider).text;
|
||||
}
|
||||
|
||||
// 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
|
||||
|
||||
@@ -9,18 +9,16 @@ import 'package:island/pods/websocket.dart';
|
||||
import 'package:island/services/file_uploader.dart';
|
||||
import 'package:island/talker.dart';
|
||||
|
||||
final uploadTasksProvider =
|
||||
StateNotifierProvider<UploadTasksNotifier, List<DriveTask>>(
|
||||
(ref) => UploadTasksNotifier(ref),
|
||||
);
|
||||
final uploadTasksProvider = NotifierProvider(UploadTasksNotifier.new);
|
||||
|
||||
class UploadTasksNotifier extends StateNotifier<List<DriveTask>> {
|
||||
final Ref ref;
|
||||
class UploadTasksNotifier extends Notifier<List<DriveTask>> {
|
||||
StreamSubscription? _websocketSubscription;
|
||||
final Map<String, Map<String, dynamic>> _pendingUploads = {};
|
||||
|
||||
UploadTasksNotifier(this.ref) : super([]) {
|
||||
@override
|
||||
List<DriveTask> build() {
|
||||
_listenToWebSocket();
|
||||
return [];
|
||||
}
|
||||
|
||||
void _listenToWebSocket() {
|
||||
@@ -334,10 +332,8 @@ class UploadTasksNotifier extends StateNotifier<List<DriveTask>> {
|
||||
return taskId;
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_websocketSubscription?.cancel();
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,26 +14,27 @@ import 'package:island/pods/config.dart';
|
||||
import 'package:island/pods/network.dart';
|
||||
import 'package:island/talker.dart';
|
||||
|
||||
class UserInfoNotifier extends StateNotifier<AsyncValue<SnAccount?>> {
|
||||
final Ref _ref;
|
||||
|
||||
UserInfoNotifier(this._ref) : super(const AsyncValue.data(null));
|
||||
|
||||
Future<void> fetchUser() async {
|
||||
final token = _ref.watch(tokenProvider);
|
||||
class UserInfoNotifier extends AsyncNotifier<SnAccount?> {
|
||||
@override
|
||||
Future<SnAccount?> build() async {
|
||||
final token = ref.watch(tokenProvider);
|
||||
if (token == null) {
|
||||
talker.info('[UserInfo] No token found, not going to fetch...');
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
return _fetchUser();
|
||||
}
|
||||
|
||||
Future<SnAccount?> _fetchUser() async {
|
||||
try {
|
||||
final client = _ref.read(apiClientProvider);
|
||||
final client = ref.read(apiClientProvider);
|
||||
final response = await client.get('/pass/accounts/me');
|
||||
final user = SnAccount.fromJson(response.data);
|
||||
state = AsyncValue.data(user);
|
||||
|
||||
if (kIsWeb || !(Platform.isLinux || Platform.isWindows)) {
|
||||
FirebaseAnalytics.instance.setUserId(id: user.id);
|
||||
}
|
||||
return user;
|
||||
} catch (error, stackTrace) {
|
||||
if (!kIsWeb) {
|
||||
if (error is DioException) {
|
||||
@@ -69,58 +70,63 @@ class UserInfoNotifier extends StateNotifier<AsyncValue<SnAccount?>> {
|
||||
),
|
||||
).then((value) {
|
||||
if (value == true) {
|
||||
fetchUser();
|
||||
ref.invalidateSelf();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
showOverlayDialog<bool>(
|
||||
builder:
|
||||
(context, close) => AlertDialog(
|
||||
title: Text('failedToLoadUserInfo'.tr()),
|
||||
content: Text(
|
||||
[
|
||||
'failedToLoadUserInfoNetwork'.tr(),
|
||||
error.toString(),
|
||||
].join('\n\n').trim(),
|
||||
),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () => close(false),
|
||||
child: Text('okay'.tr()),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () => close(true),
|
||||
child: Text('retry'.tr()),
|
||||
),
|
||||
],
|
||||
),
|
||||
).then((value) {
|
||||
if (value == true) {
|
||||
ref.invalidateSelf();
|
||||
}
|
||||
});
|
||||
}
|
||||
showOverlayDialog<bool>(
|
||||
builder:
|
||||
(context, close) => AlertDialog(
|
||||
title: Text('failedToLoadUserInfo'.tr()),
|
||||
content: Text(
|
||||
[
|
||||
'failedToLoadUserInfoNetwork'.tr(),
|
||||
error.toString(),
|
||||
].join('\n\n').trim(),
|
||||
),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () => close(false),
|
||||
child: Text('okay'.tr()),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () => close(true),
|
||||
child: Text('retry'.tr()),
|
||||
),
|
||||
],
|
||||
),
|
||||
).then((value) {
|
||||
if (value == true) {
|
||||
fetchUser();
|
||||
}
|
||||
});
|
||||
}
|
||||
talker.error(
|
||||
"[UserInfo] Failed to fetch user info...",
|
||||
error,
|
||||
stackTrace,
|
||||
);
|
||||
state = AsyncValue.data(null);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> fetchUser() async {
|
||||
ref.invalidateSelf();
|
||||
await future;
|
||||
}
|
||||
|
||||
Future<void> logOut() async {
|
||||
state = const AsyncValue.data(null);
|
||||
final prefs = _ref.read(sharedPreferencesProvider);
|
||||
final prefs = ref.read(sharedPreferencesProvider);
|
||||
await prefs.remove(kTokenPairStoreKey);
|
||||
_ref.invalidate(tokenProvider);
|
||||
ref.invalidate(tokenProvider);
|
||||
if (kIsWeb || !(Platform.isLinux || Platform.isWindows)) {
|
||||
FirebaseAnalytics.instance.setUserId(id: null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final userInfoProvider =
|
||||
StateNotifierProvider<UserInfoNotifier, AsyncValue<SnAccount?>>(
|
||||
(ref) => UserInfoNotifier(ref),
|
||||
);
|
||||
final userInfoProvider = AsyncNotifierProvider<UserInfoNotifier, SnAccount?>(
|
||||
UserInfoNotifier.new,
|
||||
);
|
||||
|
||||
@@ -22,10 +22,14 @@ class WebAuthServerState {
|
||||
}
|
||||
}
|
||||
|
||||
class WebAuthServerNotifier extends StateNotifier<WebAuthServerState> {
|
||||
final WebAuthServer _server;
|
||||
class WebAuthServerNotifier extends Notifier<WebAuthServerState> {
|
||||
late final WebAuthServer _server;
|
||||
|
||||
WebAuthServerNotifier(this._server) : super(WebAuthServerState());
|
||||
@override
|
||||
WebAuthServerState build() {
|
||||
_server = ref.watch(webAuthServerProvider);
|
||||
return WebAuthServerState();
|
||||
}
|
||||
|
||||
Future<void> start() async {
|
||||
try {
|
||||
@@ -47,7 +51,6 @@ final webAuthServerProvider = Provider<WebAuthServer>((ref) {
|
||||
});
|
||||
|
||||
final webAuthServerStateProvider =
|
||||
StateNotifierProvider<WebAuthServerNotifier, WebAuthServerState>((ref) {
|
||||
final server = ref.watch(webAuthServerProvider);
|
||||
return WebAuthServerNotifier(server);
|
||||
});
|
||||
NotifierProvider<WebAuthServerNotifier, WebAuthServerState>(
|
||||
WebAuthServerNotifier.new,
|
||||
);
|
||||
|
||||
@@ -16,14 +16,12 @@ final webFeedListProvider = FutureProvider.family<List<SnWebFeed>, String>((
|
||||
.toList();
|
||||
});
|
||||
|
||||
class WebFeedNotifier
|
||||
extends
|
||||
AutoDisposeFamilyAsyncNotifier<
|
||||
SnWebFeed,
|
||||
({String pubName, String? feedId})
|
||||
> {
|
||||
class WebFeedNotifier extends AsyncNotifier<SnWebFeed> {
|
||||
final ({String pubName, String? feedId}) arg;
|
||||
WebFeedNotifier(this.arg);
|
||||
|
||||
@override
|
||||
FutureOr<SnWebFeed> build(({String pubName, String? feedId}) arg) async {
|
||||
FutureOr<SnWebFeed> build() async {
|
||||
if (arg.feedId == null || arg.feedId!.isEmpty) {
|
||||
return SnWebFeed(
|
||||
id: '',
|
||||
|
||||
@@ -100,12 +100,16 @@ class WebSocketService {
|
||||
}
|
||||
},
|
||||
onDone: () {
|
||||
talker.info('[WebSocket] Connection closed, attempting to reconnect...');
|
||||
talker.info(
|
||||
'[WebSocket] Connection closed, attempting to reconnect...',
|
||||
);
|
||||
_scheduleReconnect();
|
||||
_statusStreamController.sink.add(WebSocketState.disconnected());
|
||||
},
|
||||
onError: (error) {
|
||||
talker.error('[WebSocket] Error occurred: $error, attempting to reconnect...');
|
||||
talker.error(
|
||||
'[WebSocket] Error occurred: $error, attempting to reconnect...',
|
||||
);
|
||||
_scheduleReconnect();
|
||||
_statusStreamController.sink.add(
|
||||
WebSocketState.error(error.toString()),
|
||||
@@ -152,15 +156,20 @@ class WebSocketService {
|
||||
}
|
||||
|
||||
final websocketStateProvider =
|
||||
StateNotifierProvider<WebSocketStateNotifier, WebSocketState>(
|
||||
(ref) => WebSocketStateNotifier(ref),
|
||||
NotifierProvider<WebSocketStateNotifier, WebSocketState>(
|
||||
WebSocketStateNotifier.new,
|
||||
);
|
||||
|
||||
class WebSocketStateNotifier extends StateNotifier<WebSocketState> {
|
||||
final Ref ref;
|
||||
class WebSocketStateNotifier extends Notifier<WebSocketState> {
|
||||
Timer? _reconnectTimer;
|
||||
|
||||
WebSocketStateNotifier(this.ref) : super(const WebSocketState.disconnected());
|
||||
@override
|
||||
WebSocketState build() {
|
||||
ref.onDispose(() {
|
||||
_reconnectTimer?.cancel();
|
||||
});
|
||||
return const WebSocketState.disconnected();
|
||||
}
|
||||
|
||||
Future<void> connect() async {
|
||||
state = const WebSocketState.connecting();
|
||||
@@ -169,7 +178,7 @@ class WebSocketStateNotifier extends StateNotifier<WebSocketState> {
|
||||
await service.connect(ref);
|
||||
state = const WebSocketState.connected();
|
||||
service.statusStream.listen((event) {
|
||||
if (mounted) state = event;
|
||||
state = event;
|
||||
});
|
||||
} catch (err) {
|
||||
state = WebSocketState.error('Failed to connect: $err');
|
||||
|
||||
Reference in New Issue
Block a user