♻️ Migrated to riverpod v3

This commit is contained in:
2025-12-06 13:00:30 +08:00
parent fd79c11d18
commit 9d03faf594
158 changed files with 6834 additions and 10357 deletions

View File

@@ -34,8 +34,8 @@ class AudioCallButton extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final ongoingCall = ref.watch(ongoingCallProvider(room.id));
final callState = ref.watch(callNotifierProvider);
final callNotifier = ref.read(callNotifierProvider.notifier);
final callState = ref.watch(callProvider);
final callNotifier = ref.read(callProvider.notifier);
final isLoading = useState(false);
final apiClient = ref.watch(apiClientProvider);

View File

@@ -6,146 +6,80 @@ part of 'call_button.dart';
// RiverpodGenerator
// **************************************************************************
String _$ongoingCallHash() => r'48031badb79efa07aefb3a4fc51635be457bd3f9';
// 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 [ongoingCall].
@ProviderFor(ongoingCall)
const ongoingCallProvider = OngoingCallFamily();
const ongoingCallProvider = OngoingCallFamily._();
/// See also [ongoingCall].
class OngoingCallFamily extends Family<AsyncValue<SnRealtimeCall?>> {
/// See also [ongoingCall].
const OngoingCallFamily();
final class OngoingCallProvider
extends
$FunctionalProvider<
AsyncValue<SnRealtimeCall?>,
SnRealtimeCall?,
FutureOr<SnRealtimeCall?>
>
with $FutureModifier<SnRealtimeCall?>, $FutureProvider<SnRealtimeCall?> {
const OngoingCallProvider._({
required OngoingCallFamily super.from,
required String super.argument,
}) : super(
retry: null,
name: r'ongoingCallProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
/// See also [ongoingCall].
OngoingCallProvider call(String roomId) {
return OngoingCallProvider(roomId);
@override
String debugGetCreateSourceHash() => _$ongoingCallHash();
@override
String toString() {
return r'ongoingCallProvider'
''
'($argument)';
}
@$internal
@override
OngoingCallProvider getProviderOverride(
covariant OngoingCallProvider provider,
) {
return call(provider.roomId);
}
static const Iterable<ProviderOrFamily>? _dependencies = null;
$FutureProviderElement<SnRealtimeCall?> $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'ongoingCallProvider';
}
/// See also [ongoingCall].
class OngoingCallProvider extends AutoDisposeFutureProvider<SnRealtimeCall?> {
/// See also [ongoingCall].
OngoingCallProvider(String roomId)
: this._internal(
(ref) => ongoingCall(ref as OngoingCallRef, roomId),
from: ongoingCallProvider,
name: r'ongoingCallProvider',
debugGetCreateSourceHash:
const bool.fromEnvironment('dart.vm.product')
? null
: _$ongoingCallHash,
dependencies: OngoingCallFamily._dependencies,
allTransitiveDependencies: OngoingCallFamily._allTransitiveDependencies,
roomId: roomId,
);
OngoingCallProvider._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
Override overrideWith(
FutureOr<SnRealtimeCall?> Function(OngoingCallRef provider) create,
) {
return ProviderOverride(
origin: this,
override: OngoingCallProvider._internal(
(ref) => create(ref as OngoingCallRef),
from: from,
name: null,
dependencies: null,
allTransitiveDependencies: null,
debugGetCreateSourceHash: null,
roomId: roomId,
),
);
}
@override
AutoDisposeFutureProviderElement<SnRealtimeCall?> createElement() {
return _OngoingCallProviderElement(this);
FutureOr<SnRealtimeCall?> create(Ref ref) {
final argument = this.argument as String;
return ongoingCall(ref, argument);
}
@override
bool operator ==(Object other) {
return other is OngoingCallProvider && other.roomId == roomId;
return other is OngoingCallProvider && 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 OngoingCallRef on AutoDisposeFutureProviderRef<SnRealtimeCall?> {
/// The parameter `roomId` of this provider.
String get roomId;
}
String _$ongoingCallHash() => r'48031badb79efa07aefb3a4fc51635be457bd3f9';
class _OngoingCallProviderElement
extends AutoDisposeFutureProviderElement<SnRealtimeCall?>
with OngoingCallRef {
_OngoingCallProviderElement(super.provider);
final class OngoingCallFamily extends $Family
with $FunctionalFamilyOverride<FutureOr<SnRealtimeCall?>, String> {
const OngoingCallFamily._()
: super(
retry: null,
name: r'ongoingCallProvider',
dependencies: null,
$allTransitiveDependencies: null,
isAutoDispose: true,
);
OngoingCallProvider call(String roomId) =>
OngoingCallProvider._(argument: roomId, from: this);
@override
String get roomId => (origin as OngoingCallProvider).roomId;
String toString() => r'ongoingCallProvider';
}
// 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

View File

@@ -10,8 +10,8 @@ class CallContent extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final callState = ref.watch(callNotifierProvider);
final callNotifier = ref.watch(callNotifierProvider.notifier);
final callState = ref.watch(callProvider);
final callNotifier = ref.watch(callProvider.notifier);
if (!callState.isConnected) {
return const Center(child: CircularProgressIndicator());

View File

@@ -25,8 +25,8 @@ class CallControlsBar extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final callState = ref.watch(callNotifierProvider);
final callNotifier = ref.read(callNotifierProvider.notifier);
final callState = ref.watch(callProvider);
final callNotifier = ref.read(callProvider.notifier);
return Container(
padding: EdgeInsets.symmetric(
@@ -268,7 +268,7 @@ class CallControlsBar extends HookConsumerWidget {
String deviceType,
) async {
try {
final callNotifier = ref.read(callNotifierProvider.notifier);
final callNotifier = ref.read(callProvider.notifier);
if (deviceType == 'videoinput') {
// Switch camera device
@@ -312,8 +312,8 @@ class CallOverlayBar extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final callState = ref.watch(callNotifierProvider);
final callNotifier = ref.read(callNotifierProvider.notifier);
final callState = ref.watch(callProvider);
final callNotifier = ref.read(callProvider.notifier);
final ongoingCall = ref.watch(ongoingCallProvider(room.id));
// State for overlay mode: compact or preview
@@ -398,7 +398,7 @@ class CallOverlayBar extends HookConsumerWidget {
isLoading.value = true;
try {
// Just join the room, don't navigate
await ref.read(callNotifierProvider.notifier).joinRoom(room);
await ref.read(callProvider.notifier).joinRoom(room);
} catch (e) {
showErrorAlert(e);
} finally {

View File

@@ -19,7 +19,7 @@ class CallParticipantCard extends HookConsumerWidget {
Widget build(BuildContext context, WidgetRef ref) {
final width =
math.min(MediaQuery.of(context).size.width - 80, 360).toDouble();
final callNotifier = ref.watch(callNotifierProvider.notifier);
final callNotifier = ref.watch(callProvider.notifier);
final volumeSliderValue = useState(callNotifier.getParticipantVolume(live));

View File

@@ -260,7 +260,7 @@ class ChatInput extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final inputFocusNode = useFocusNode();
final chatSubscribe = ref.watch(chatSubscribeNotifierProvider(chatRoom.id));
final chatSubscribe = ref.watch(chatSubscribeProvider(chatRoom.id));
final isExpanded = useState(false);
void send() {
@@ -310,7 +310,7 @@ class ChatInput extends HookConsumerWidget {
}
}
final settings = ref.watch(appSettingsNotifierProvider);
final settings = ref.watch(appSettingsProvider);
inputFocusNode.onKeyEvent = (node, event) {
if (event is! KeyDownEvent) return KeyEventResult.ignored;

View File

@@ -13,14 +13,12 @@ import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart';
import 'package:url_launcher/url_launcher_string.dart';
final chatCloudFileListNotifierProvider = AsyncNotifierProvider.autoDispose<
ChatCloudFileListNotifier,
List<SnCloudFile>
>(ChatCloudFileListNotifier.new);
final chatCloudFileListNotifierProvider = AsyncNotifierProvider.autoDispose(
ChatCloudFileListNotifier.new,
);
class ChatCloudFileListNotifier
extends AutoDisposeAsyncNotifier<List<SnCloudFile>>
with AutoDisposeAsyncPaginationController<SnCloudFile> {
class ChatCloudFileListNotifier extends AsyncNotifier<List<SnCloudFile>>
with AsyncPaginationController<SnCloudFile> {
@override
Future<List<SnCloudFile>> fetch() async {
final client = ref.read(apiClientProvider);

View File

@@ -67,7 +67,7 @@ class MessageItem extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final remoteMessage = message.toRemoteMessage();
final settings = ref.watch(appSettingsNotifierProvider);
final settings = ref.watch(appSettingsProvider);
final isMobile = !kIsWeb && (Platform.isAndroid || Platform.isIOS);
@@ -1150,7 +1150,7 @@ class MessageQuoteWidget extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final messagesNotifier = ref.watch(
messagesNotifierProvider(message.roomId).notifier,
messagesProvider(message.roomId).notifier,
);
return FutureBuilder<LocalChatMessage?>(

View File

@@ -28,8 +28,8 @@ class PublicRoomPreview extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final messages = ref.watch(messagesNotifierProvider(id));
final messagesNotifier = ref.read(messagesNotifierProvider(id).notifier);
final messages = ref.watch(messagesProvider(id));
final messagesNotifier = ref.read(messagesProvider(id).notifier);
final scrollController = useScrollController();
final listController = useMemoized(() => ListController(), []);
@@ -204,7 +204,7 @@ class PublicRoomPreview extends HookConsumerWidget {
showLoadingModal(context);
final apiClient = ref.read(apiClientProvider);
await apiClient.post('/sphere/chat/${room.id}/members/me');
ref.invalidate(ChatRoomIdentityNotifierProvider(id));
ref.invalidate(chatRoomIdentityProvider(id));
} catch (err) {
showErrorAlert(err);
} finally {