Skip to content

Commit

Permalink
Merge pull request #3787 from rrousselGit/only-ref
Browse files Browse the repository at this point in the history
Deprecate everything besides `Ref`
  • Loading branch information
rrousselGit authored Oct 20, 2024
2 parents 519cba1 + 15eb9bd commit 9219c0f
Show file tree
Hide file tree
Showing 327 changed files with 2,297 additions and 946 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
**/*.*.dart linguist-generated=true
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Long story short:

```dart
@riverpod
Future<String> boredSuggestion(BoredSuggestionRef ref) async {
Future<String> boredSuggestion(Ref ref) async {
final response = await http.get(
Uri.https('boredapi.com', '/api/activity'),
);
Expand Down
2 changes: 1 addition & 1 deletion examples/counter/lib/main.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions examples/pub/lib/detail.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ extension CancelTokenX on Ref {

@riverpod
Future<Package> fetchPackageDetails(
FetchPackageDetailsRef ref, {
Ref ref, {
required String packageName,
}) async {
final cancelToken = ref.cancelToken();
Expand All @@ -34,7 +34,7 @@ Future<Package> fetchPackageDetails(
}

@riverpod
Future<List<String>> likedPackages(LikedPackagesRef ref) async {
Future<List<String>> likedPackages(Ref ref) async {
final cancelToken = ref.cancelToken();

return ref
Expand All @@ -43,7 +43,7 @@ Future<List<String>> likedPackages(LikedPackagesRef ref) async {
}

@riverpod
PubRepository pubRepository(PubRepositoryRef ref) => PubRepository();
PubRepository pubRepository(Ref ref) => PubRepository();

/// A provider that fetches the likes count, popularity score and pub points
/// for a given package.
Expand Down
16 changes: 12 additions & 4 deletions examples/pub/lib/detail.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion examples/pub/lib/search.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const searchPageSize = 10;

@riverpod
Future<List<Package>> fetchPackages(
FetchPackagesRef ref, {
Ref ref, {
required int page,
String search = '',
}) async {
Expand Down
6 changes: 4 additions & 2 deletions examples/pub/lib/search.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions packages/flutter_riverpod/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## Unreleased minor

- Deprecated all `Ref` subclasses. Instead, use `Ref` itself.
- Deprecated `Ref`'s type argument. Use `Ref` without its generic parameter instead.
- Deprecated any `Ref` member that used `Ref`'s generic (such as `Ref.state` or `Ref.listenSelf`).
Instead, use a `Notifier`.
- Added `Notifier.listenSelf`, as a replacement to `Ref.listenSelf`.
- `Ref.watch` and other methods now accept auto-dispose providers too.

## 2.5.3 - 2024-10-12

- Fixed a typo in the documentation (thanks to @ljbkusters)
Expand Down
4 changes: 4 additions & 0 deletions packages/flutter_riverpod/lib/src/builders.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
part of '../change_notifier_provider.dart';

/// {@macro riverpod.provider_ref_base}
@Deprecated('will be removed in 3.0.0, use Ref instead')
abstract class AutoDisposeChangeNotifierProviderRef<
NotifierT extends ChangeNotifier?>
extends ChangeNotifierProviderRef<NotifierT>
Expand Down Expand Up @@ -40,16 +41,23 @@ class AutoDisposeChangeNotifierProvider<NotifierT extends ChangeNotifier?>
/// {@macro riverpod.family}
static const family = AutoDisposeChangeNotifierProviderFamily.new;

final NotifierT Function(AutoDisposeChangeNotifierProviderRef<NotifierT> ref)
_createFn;
final NotifierT Function(
// ignore: deprecated_member_use_from_same_package
AutoDisposeChangeNotifierProviderRef<NotifierT> ref,
) _createFn;

@override
NotifierT _create(AutoDisposeChangeNotifierProviderElement<NotifierT> ref) {
NotifierT _create(
// ignore: deprecated_member_use_from_same_package
AutoDisposeChangeNotifierProviderElement<NotifierT> ref,
) {
return _createFn(ref);
}

@override
// ignore: deprecated_member_use_from_same_package
AutoDisposeChangeNotifierProviderElement<NotifierT> createElement() {
// ignore: deprecated_member_use_from_same_package
return AutoDisposeChangeNotifierProviderElement<NotifierT>._(this);
}

Expand All @@ -58,6 +66,7 @@ class AutoDisposeChangeNotifierProvider<NotifierT extends ChangeNotifier?>

/// {@macro riverpod.override_with}
Override overrideWith(
// ignore: deprecated_member_use_from_same_package
Create<NotifierT, AutoDisposeChangeNotifierProviderRef<NotifierT>> create,
) {
return ProviderOverride(
Expand All @@ -76,22 +85,24 @@ class AutoDisposeChangeNotifierProvider<NotifierT extends ChangeNotifier?>
}

/// The element of [AutoDisposeChangeNotifierProvider].
@Deprecated('will be removed in 3.0.0, use Ref instead')
class AutoDisposeChangeNotifierProviderElement<
NotifierT extends ChangeNotifier?>
extends ChangeNotifierProviderElement<NotifierT>
with AutoDisposeProviderElementMixin<NotifierT>
implements AutoDisposeChangeNotifierProviderRef<NotifierT> {
/// The [ProviderElementBase] for [ChangeNotifier]
@Deprecated('will be removed in 3.0.0, use Ref instead')
AutoDisposeChangeNotifierProviderElement._(
AutoDisposeChangeNotifierProvider<NotifierT> super._provider,
) : super._();
}

// ignore: subtype_of_sealed_class
/// The [Family] of [AutoDisposeChangeNotifierProvider].
class AutoDisposeChangeNotifierProviderFamily<NotifierT extends ChangeNotifier?,
Arg>
class AutoDisposeChangeNotifierProviderFamily<NotifierT extends ChangeNotifier?, Arg>
extends AutoDisposeFamilyBase<
// ignore: deprecated_member_use_from_same_package
AutoDisposeChangeNotifierProviderRef<NotifierT>,
NotifierT,
Arg,
Expand All @@ -112,6 +123,7 @@ class AutoDisposeChangeNotifierProviderFamily<NotifierT extends ChangeNotifier?,
/// {@macro riverpod.override_with}
Override overrideWith(
NotifierT Function(
// ignore: deprecated_member_use_from_same_package
AutoDisposeChangeNotifierProviderRef<NotifierT> ref,
Arg arg,
) create,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@
part of '../change_notifier_provider.dart';

/// {@macro riverpod.provider_ref_base}
@Deprecated('will be removed in 3.0.0. Use Ref instead')
abstract class ChangeNotifierProviderRef<NotifierT extends ChangeNotifier?>
implements Ref<NotifierT> {
/// The [ChangeNotifier] currently exposed by this provider.
///
/// Cannot be accessed while creating the provider.
@Deprecated('will be removed in 3.0.0.')
NotifierT get notifier;
}

Expand Down Expand Up @@ -74,7 +76,9 @@ abstract class ChangeNotifierProviderRef<NotifierT extends ChangeNotifier?>
/// {@endtemplate}
class ChangeNotifierProvider<NotifierT extends ChangeNotifier?>
extends _ChangeNotifierProviderBase<NotifierT>
with AlwaysAliveProviderBase<NotifierT> {
with
// ignore: deprecated_member_use
AlwaysAliveProviderBase<NotifierT> {
/// {@macro riverpod.change_notifier_provider}
ChangeNotifierProvider(
this._createFn, {
Expand Down Expand Up @@ -106,7 +110,10 @@ class ChangeNotifierProvider<NotifierT extends ChangeNotifier?>
/// {@macro riverpod.family}
static const family = ChangeNotifierProviderFamilyBuilder();

final NotifierT Function(ChangeNotifierProviderRef<NotifierT> ref) _createFn;
final NotifierT Function(
// ignore: deprecated_member_use, deprecated_member_use_from_same_package
ChangeNotifierProviderRef<NotifierT> ref,
) _createFn;

@override
NotifierT _create(ChangeNotifierProviderElement<NotifierT> ref) {
Expand All @@ -119,6 +126,7 @@ class ChangeNotifierProvider<NotifierT extends ChangeNotifier?>
}

@override
// ignore: deprecated_member_use, deprecated_member_use_from_same_package
late final AlwaysAliveRefreshable<NotifierT> notifier =
_notifier<NotifierT>(this);

Expand Down Expand Up @@ -157,6 +165,7 @@ class ChangeNotifierProvider<NotifierT extends ChangeNotifier?>
/// ```
/// {@endtemplate}
Override overrideWith(
// ignore: deprecated_member_use, deprecated_member_use_from_same_package
Create<NotifierT, ChangeNotifierProviderRef<NotifierT>> create,
) {
return ProviderOverride(
Expand All @@ -177,7 +186,10 @@ class ChangeNotifierProvider<NotifierT extends ChangeNotifier?>
/// The element of [ChangeNotifierProvider].
class ChangeNotifierProviderElement<NotifierT extends ChangeNotifier?>
extends ProviderElementBase<NotifierT>
implements ChangeNotifierProviderRef<NotifierT> {
// ignore: deprecated_member_use, deprecated_member_use_from_same_package
implements
// ignore: deprecated_member_use, deprecated_member_use_from_same_package
ChangeNotifierProviderRef<NotifierT> {
ChangeNotifierProviderElement._(
_ChangeNotifierProviderBase<NotifierT> super._provider,
);
Expand Down Expand Up @@ -242,6 +254,7 @@ class ChangeNotifierProviderElement<NotifierT extends ChangeNotifier?>
// ignore: subtype_of_sealed_class
/// The [Family] of [ChangeNotifierProvider].
class ChangeNotifierProviderFamily<NotifierT extends ChangeNotifier?, Arg>
// ignore: deprecated_member_use, deprecated_member_use_from_same_package
extends FamilyBase<ChangeNotifierProviderRef<NotifierT>, NotifierT, Arg,
NotifierT, ChangeNotifierProvider<NotifierT>> {
/// The [Family] of [ChangeNotifierProvider].
Expand All @@ -258,6 +271,7 @@ class ChangeNotifierProviderFamily<NotifierT extends ChangeNotifier?, Arg>

/// {@macro riverpod.override_with}
Override overrideWith(
// ignore: deprecated_member_use, deprecated_member_use_from_same_package
NotifierT Function(ChangeNotifierProviderRef<NotifierT> ref, Arg arg)
create,
) {
Expand Down
5 changes: 5 additions & 0 deletions packages/flutter_riverpod/test/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import: "../../analysis_options.yaml"

analyzer:
errors:
deprecated_member_use_from_same_package: false
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// ignore_for_file: invalid_use_of_internal_member
// ignore_for_file: invalid_use_of_internal_member, deprecated_member_use_from_same_package

import 'package:flutter/widgets.dart' hide Listener;
import 'package:flutter_riverpod/src/internals.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// ignore_for_file: invalid_use_of_internal_member, avoid_types_on_closure_parameters
// ignore_for_file: invalid_use_of_internal_member, avoid_types_on_closure_parameters, deprecated_member_use_from_same_package, deprecated_member_use

import 'package:flutter/widgets.dart' hide Listener;
import 'package:flutter_riverpod/src/internals.dart';
Expand Down Expand Up @@ -193,7 +193,6 @@ void main() {
final container = createContainer(
parent: root,
overrides: [
// ignore: deprecated_member_use
provider.overrideWithProvider(
ChangeNotifierProvider((ref) => ValueNotifier(42)),
),
Expand Down Expand Up @@ -416,7 +415,6 @@ void main() {
final notifier2 = TestNotifier();
final container = createContainer(
overrides: [
// ignore: deprecated_member_use
provider.overrideWithProvider(ChangeNotifierProvider((_) => notifier)),
],
);
Expand All @@ -436,7 +434,6 @@ void main() {
expect(callCount, 1);

container.updateOverrides([
// ignore: deprecated_member_use
provider.overrideWithProvider(ChangeNotifierProvider((_) => notifier2)),
]);

Expand Down
9 changes: 9 additions & 0 deletions packages/hooks_riverpod/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## Unreleased minor

- Deprecated all `Ref` subclasses. Instead, use `Ref` itself.
- Deprecated `Ref`'s type argument. Use `Ref` without its generic parameter instead.
- Deprecated any `Ref` member that used `Ref`'s generic (such as `Ref.state` or `Ref.listenSelf`).
Instead, use a `Notifier`.
- Added `Notifier.listenSelf`, as a replacement to `Ref.listenSelf`.
- `Ref.watch` and other methods now accept auto-dispose providers too.

## 2.5.3 - 2024-10-12

- Fixed a typo in the documentation (thanks to @ljbkusters)
Expand Down
Loading

0 comments on commit 9219c0f

Please sign in to comment.