Skip to content

Commit acb911f

Browse files
authored
Fix depreciation (rrousselGit#423)
1 parent 15fdb4f commit acb911f

File tree

13 files changed

+78
-114
lines changed

13 files changed

+78
-114
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ A series of hooks with no particular theme.
354354
| [useAutomaticKeepAlive](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useAutomaticKeepAlive.html) | An equivalent to the `AutomaticKeepAlive` widget for hooks. |
355355
| [useOnPlatformBrightnessChange](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useOnPlatformBrightnessChange.html) | Listens to platform `Brightness` changes and triggers a callback on change.|
356356
| [useSearchController](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useSearchController.html) | Creates and disposes a `SearchController`. |
357-
| [useMaterialStatesController](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useMaterialStatesController.html) | Creates and disposes a `MaterialStatesController`. |
357+
| [useWidgetStatesController](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useWidgetStatesController.html) | Creates and disposes a `WidgetStatesController`. |
358358
| [useExpansionTileController](https://api.flutter.dev/flutter/material/ExpansionTileController-class.html) | Creates a `ExpansionTileController`. |
359359
| [useDebounced](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useDebounced.html) | Returns a debounced version of the provided value, triggering widget updates accordingly after a specified timeout duration |
360360

packages/flutter_hooks/CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## Unreleased minor
2+
3+
- Renamed `useMaterialStatesController` to `useWidgetStatesController` to follow the rename in Flutter.
4+
15
## 0.20.5 - 2024-02-05
26

37
- Deprecate the `useIsMounted` hook as you should use `BuildContext.mounted` instead if you're on Flutter 3.7.0 or greater
@@ -10,7 +14,7 @@
1014
## 0.20.3 - 2023-10-10
1115

1216
- Added `useExpansionTileController` (thanks to @droidbg)
13-
- Added `useMaterialStateController` (thanks to @AdamHavlicek)
17+
- Added `useMaterialStatesController` (thanks to @AdamHavlicek)
1418

1519
## 0.20.2 - 2023-10-02
1620

packages/flutter_hooks/example/lib/star_wars/planet_screen.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ class _Error extends StatelessWidget {
107107
if (errorMsg != null) Text(errorMsg!),
108108
ElevatedButton(
109109
style: ButtonStyle(
110-
backgroundColor: MaterialStateProperty.all(Colors.redAccent),
110+
backgroundColor: WidgetStateProperty.all(Colors.redAccent),
111111
),
112112
onPressed: () async {
113113
await Provider.of<_PlanetHandler>(

packages/flutter_hooks/lib/src/focus_node.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ part of 'hooks.dart';
66
/// - [FocusNode]
77
FocusNode useFocusNode({
88
String? debugLabel,
9-
FocusOnKeyCallback? onKey,
109
FocusOnKeyEventCallback? onKeyEvent,
1110
bool skipTraversal = false,
1211
bool canRequestFocus = true,
@@ -15,7 +14,6 @@ FocusNode useFocusNode({
1514
return use(
1615
_FocusNodeHook(
1716
debugLabel: debugLabel,
18-
onKey: onKey,
1917
onKeyEvent: onKeyEvent,
2018
skipTraversal: skipTraversal,
2119
canRequestFocus: canRequestFocus,
@@ -27,15 +25,13 @@ FocusNode useFocusNode({
2725
class _FocusNodeHook extends Hook<FocusNode> {
2826
const _FocusNodeHook({
2927
this.debugLabel,
30-
this.onKey,
3128
this.onKeyEvent,
3229
required this.skipTraversal,
3330
required this.canRequestFocus,
3431
required this.descendantsAreFocusable,
3532
});
3633

3734
final String? debugLabel;
38-
final FocusOnKeyCallback? onKey;
3935
final FocusOnKeyEventCallback? onKeyEvent;
4036
final bool skipTraversal;
4137
final bool canRequestFocus;
@@ -50,7 +46,6 @@ class _FocusNodeHook extends Hook<FocusNode> {
5046
class _FocusNodeHookState extends HookState<FocusNode, _FocusNodeHook> {
5147
late final FocusNode _focusNode = FocusNode(
5248
debugLabel: hook.debugLabel,
53-
onKey: hook.onKey,
5449
onKeyEvent: hook.onKeyEvent,
5550
skipTraversal: hook.skipTraversal,
5651
canRequestFocus: hook.canRequestFocus,
@@ -64,7 +59,6 @@ class _FocusNodeHookState extends HookState<FocusNode, _FocusNodeHook> {
6459
..skipTraversal = hook.skipTraversal
6560
..canRequestFocus = hook.canRequestFocus
6661
..descendantsAreFocusable = hook.descendantsAreFocusable
67-
..onKey = hook.onKey
6862
..onKeyEvent = hook.onKeyEvent;
6963
}
7064

packages/flutter_hooks/lib/src/focus_scope_node.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@ part of 'hooks.dart';
66
/// - [FocusScopeNode]
77
FocusScopeNode useFocusScopeNode({
88
String? debugLabel,
9-
FocusOnKeyCallback? onKey,
109
FocusOnKeyEventCallback? onKeyEvent,
1110
bool skipTraversal = false,
1211
bool canRequestFocus = true,
1312
}) {
1413
return use(
1514
_FocusScopeNodeHook(
1615
debugLabel: debugLabel,
17-
onKey: onKey,
1816
onKeyEvent: onKeyEvent,
1917
skipTraversal: skipTraversal,
2018
canRequestFocus: canRequestFocus,
@@ -25,14 +23,12 @@ FocusScopeNode useFocusScopeNode({
2523
class _FocusScopeNodeHook extends Hook<FocusScopeNode> {
2624
const _FocusScopeNodeHook({
2725
this.debugLabel,
28-
this.onKey,
2926
this.onKeyEvent,
3027
required this.skipTraversal,
3128
required this.canRequestFocus,
3229
});
3330

3431
final String? debugLabel;
35-
final FocusOnKeyCallback? onKey;
3632
final FocusOnKeyEventCallback? onKeyEvent;
3733
final bool skipTraversal;
3834
final bool canRequestFocus;
@@ -47,7 +43,6 @@ class _FocusScopeNodeHookState
4743
extends HookState<FocusScopeNode, _FocusScopeNodeHook> {
4844
late final FocusScopeNode _focusScopeNode = FocusScopeNode(
4945
debugLabel: hook.debugLabel,
50-
onKey: hook.onKey,
5146
onKeyEvent: hook.onKeyEvent,
5247
skipTraversal: hook.skipTraversal,
5348
canRequestFocus: hook.canRequestFocus,
@@ -59,7 +54,6 @@ class _FocusScopeNodeHookState
5954
..debugLabel = hook.debugLabel
6055
..skipTraversal = hook.skipTraversal
6156
..canRequestFocus = hook.canRequestFocus
62-
..onKey = hook.onKey
6357
..onKeyEvent = hook.onKeyEvent;
6458
}
6559

packages/flutter_hooks/lib/src/hooks.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ import 'package:flutter/material.dart'
55
show
66
Brightness,
77
ExpansionTileController,
8-
MaterialState,
9-
MaterialStatesController,
8+
WidgetStatesController,
109
SearchController,
11-
TabController;
10+
TabController,
11+
WidgetState;
1212
import 'package:flutter/scheduler.dart';
1313
import 'package:flutter/widgets.dart';
1414

@@ -32,5 +32,5 @@ part 'tab_controller.dart';
3232
part 'text_controller.dart';
3333
part 'transformation_controller.dart';
3434
part 'widgets_binding_observer.dart';
35-
part 'material_states_controller.dart';
35+
part 'widget_states_controller.dart';
3636
part 'debounced.dart';

packages/flutter_hooks/lib/src/material_states_controller.dart

Lines changed: 0 additions & 44 deletions
This file was deleted.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
part of 'hooks.dart';
2+
3+
/// Creates a [WidgetStatesController] that will be disposed automatically.
4+
///
5+
/// See also:
6+
/// - [WidgetStatesController]
7+
WidgetStatesController useWidgetStatesController({
8+
Set<WidgetState>? values,
9+
List<Object?>? keys,
10+
}) {
11+
return use(
12+
_WidgetStatesControllerHook(
13+
values: values,
14+
keys: keys,
15+
),
16+
);
17+
}
18+
19+
class _WidgetStatesControllerHook extends Hook<WidgetStatesController> {
20+
const _WidgetStatesControllerHook({
21+
required this.values,
22+
super.keys,
23+
});
24+
25+
final Set<WidgetState>? values;
26+
27+
@override
28+
HookState<WidgetStatesController, Hook<WidgetStatesController>>
29+
createState() => _WidgetStateControllerHookState();
30+
}
31+
32+
class _WidgetStateControllerHookState
33+
extends HookState<WidgetStatesController, _WidgetStatesControllerHook> {
34+
late final controller = WidgetStatesController(hook.values);
35+
36+
@override
37+
WidgetStatesController build(BuildContext context) => controller;
38+
39+
@override
40+
void dispose() => controller.dispose();
41+
42+
@override
43+
String get debugLabel => 'useWidgetStatesController';
44+
}

packages/flutter_hooks/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ version: 0.20.5
77

88
environment:
99
sdk: ">=2.17.0 <3.0.0"
10-
flutter: ">=3.0.0"
10+
flutter: ">=3.19.0-0.3.pre"
1111

1212
dependencies:
1313
flutter:

packages/flutter_hooks/resources/translations/zh_cn/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ Flutter_Hooks 已经包含一些不同类别的可复用的钩子:
345345
| [useIsMounted](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useIsMounted.html) | 对钩子而言和 `State.mounted` 一样 |
346346
| [useAutomaticKeepAlive](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useAutomaticKeepAlive.html) | 对钩子而言和 `AutomaticKeepAlive` 一样 |
347347
| [useOnPlatformBrightnessChange](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useOnPlatformBrightnessChange.html) | 监听平台 `Brightness` 并在其改变时触发回调 |
348-
| [useMaterialStatesController](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useMaterialStatesController.html) | 创建并自动 dispose 一个 `MaterialStatesController` |
348+
| [useWidgetStatesController](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useWidgetStatesController.html) | 创建并自动 dispose 一个 `WidgetStatesController` |
349349
| [useExpansionTileController](https://api.flutter.dev/flutter/material/ExpansionTileController-class.html) | 创建一个 `ExpansionTileController` |
350350

351351
## 贡献

0 commit comments

Comments
 (0)