Skip to content

Commit

Permalink
Fix depreciation (#423)
Browse files Browse the repository at this point in the history
  • Loading branch information
rrousselGit committed Mar 22, 2024
1 parent 15fdb4f commit acb911f
Show file tree
Hide file tree
Showing 13 changed files with 78 additions and 114 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ A series of hooks with no particular theme.
| [useAutomaticKeepAlive](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useAutomaticKeepAlive.html) | An equivalent to the `AutomaticKeepAlive` widget for hooks. |
| [useOnPlatformBrightnessChange](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useOnPlatformBrightnessChange.html) | Listens to platform `Brightness` changes and triggers a callback on change.|
| [useSearchController](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useSearchController.html) | Creates and disposes a `SearchController`. |
| [useMaterialStatesController](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useMaterialStatesController.html) | Creates and disposes a `MaterialStatesController`. |
| [useWidgetStatesController](https://pub.dev/documentation/flutter_hooks/latest/flutter_hooks/useWidgetStatesController.html) | Creates and disposes a `WidgetStatesController`. |
| [useExpansionTileController](https://api.flutter.dev/flutter/material/ExpansionTileController-class.html) | Creates a `ExpansionTileController`. |
| [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 |

Expand Down
6 changes: 5 additions & 1 deletion packages/flutter_hooks/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## Unreleased minor

- Renamed `useMaterialStatesController` to `useWidgetStatesController` to follow the rename in Flutter.

## 0.20.5 - 2024-02-05

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

- Added `useExpansionTileController` (thanks to @droidbg)
- Added `useMaterialStateController` (thanks to @AdamHavlicek)
- Added `useMaterialStatesController` (thanks to @AdamHavlicek)

## 0.20.2 - 2023-10-02

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ class _Error extends StatelessWidget {
if (errorMsg != null) Text(errorMsg!),
ElevatedButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.redAccent),
backgroundColor: WidgetStateProperty.all(Colors.redAccent),
),
onPressed: () async {
await Provider.of<_PlanetHandler>(
Expand Down
6 changes: 0 additions & 6 deletions packages/flutter_hooks/lib/src/focus_node.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ part of 'hooks.dart';
/// - [FocusNode]
FocusNode useFocusNode({
String? debugLabel,
FocusOnKeyCallback? onKey,
FocusOnKeyEventCallback? onKeyEvent,
bool skipTraversal = false,
bool canRequestFocus = true,
Expand All @@ -15,7 +14,6 @@ FocusNode useFocusNode({
return use(
_FocusNodeHook(
debugLabel: debugLabel,
onKey: onKey,
onKeyEvent: onKeyEvent,
skipTraversal: skipTraversal,
canRequestFocus: canRequestFocus,
Expand All @@ -27,15 +25,13 @@ FocusNode useFocusNode({
class _FocusNodeHook extends Hook<FocusNode> {
const _FocusNodeHook({
this.debugLabel,
this.onKey,
this.onKeyEvent,
required this.skipTraversal,
required this.canRequestFocus,
required this.descendantsAreFocusable,
});

final String? debugLabel;
final FocusOnKeyCallback? onKey;
final FocusOnKeyEventCallback? onKeyEvent;
final bool skipTraversal;
final bool canRequestFocus;
Expand All @@ -50,7 +46,6 @@ class _FocusNodeHook extends Hook<FocusNode> {
class _FocusNodeHookState extends HookState<FocusNode, _FocusNodeHook> {
late final FocusNode _focusNode = FocusNode(
debugLabel: hook.debugLabel,
onKey: hook.onKey,
onKeyEvent: hook.onKeyEvent,
skipTraversal: hook.skipTraversal,
canRequestFocus: hook.canRequestFocus,
Expand All @@ -64,7 +59,6 @@ class _FocusNodeHookState extends HookState<FocusNode, _FocusNodeHook> {
..skipTraversal = hook.skipTraversal
..canRequestFocus = hook.canRequestFocus
..descendantsAreFocusable = hook.descendantsAreFocusable
..onKey = hook.onKey
..onKeyEvent = hook.onKeyEvent;
}

Expand Down
6 changes: 0 additions & 6 deletions packages/flutter_hooks/lib/src/focus_scope_node.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@ part of 'hooks.dart';
/// - [FocusScopeNode]
FocusScopeNode useFocusScopeNode({
String? debugLabel,
FocusOnKeyCallback? onKey,
FocusOnKeyEventCallback? onKeyEvent,
bool skipTraversal = false,
bool canRequestFocus = true,
}) {
return use(
_FocusScopeNodeHook(
debugLabel: debugLabel,
onKey: onKey,
onKeyEvent: onKeyEvent,
skipTraversal: skipTraversal,
canRequestFocus: canRequestFocus,
Expand All @@ -25,14 +23,12 @@ FocusScopeNode useFocusScopeNode({
class _FocusScopeNodeHook extends Hook<FocusScopeNode> {
const _FocusScopeNodeHook({
this.debugLabel,
this.onKey,
this.onKeyEvent,
required this.skipTraversal,
required this.canRequestFocus,
});

final String? debugLabel;
final FocusOnKeyCallback? onKey;
final FocusOnKeyEventCallback? onKeyEvent;
final bool skipTraversal;
final bool canRequestFocus;
Expand All @@ -47,7 +43,6 @@ class _FocusScopeNodeHookState
extends HookState<FocusScopeNode, _FocusScopeNodeHook> {
late final FocusScopeNode _focusScopeNode = FocusScopeNode(
debugLabel: hook.debugLabel,
onKey: hook.onKey,
onKeyEvent: hook.onKeyEvent,
skipTraversal: hook.skipTraversal,
canRequestFocus: hook.canRequestFocus,
Expand All @@ -59,7 +54,6 @@ class _FocusScopeNodeHookState
..debugLabel = hook.debugLabel
..skipTraversal = hook.skipTraversal
..canRequestFocus = hook.canRequestFocus
..onKey = hook.onKey
..onKeyEvent = hook.onKeyEvent;
}

Expand Down
8 changes: 4 additions & 4 deletions packages/flutter_hooks/lib/src/hooks.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ import 'package:flutter/material.dart'
show
Brightness,
ExpansionTileController,
MaterialState,
MaterialStatesController,
WidgetStatesController,
SearchController,
TabController;
TabController,
WidgetState;
import 'package:flutter/scheduler.dart';
import 'package:flutter/widgets.dart';

Expand All @@ -32,5 +32,5 @@ part 'tab_controller.dart';
part 'text_controller.dart';
part 'transformation_controller.dart';
part 'widgets_binding_observer.dart';
part 'material_states_controller.dart';
part 'widget_states_controller.dart';
part 'debounced.dart';
44 changes: 0 additions & 44 deletions packages/flutter_hooks/lib/src/material_states_controller.dart

This file was deleted.

44 changes: 44 additions & 0 deletions packages/flutter_hooks/lib/src/widget_states_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
part of 'hooks.dart';

/// Creates a [WidgetStatesController] that will be disposed automatically.
///
/// See also:
/// - [WidgetStatesController]
WidgetStatesController useWidgetStatesController({
Set<WidgetState>? values,
List<Object?>? keys,
}) {
return use(
_WidgetStatesControllerHook(
values: values,
keys: keys,
),
);
}

class _WidgetStatesControllerHook extends Hook<WidgetStatesController> {
const _WidgetStatesControllerHook({
required this.values,
super.keys,
});

final Set<WidgetState>? values;

@override
HookState<WidgetStatesController, Hook<WidgetStatesController>>
createState() => _WidgetStateControllerHookState();
}

class _WidgetStateControllerHookState
extends HookState<WidgetStatesController, _WidgetStatesControllerHook> {
late final controller = WidgetStatesController(hook.values);

@override
WidgetStatesController build(BuildContext context) => controller;

@override
void dispose() => controller.dispose();

@override
String get debugLabel => 'useWidgetStatesController';
}
2 changes: 1 addition & 1 deletion packages/flutter_hooks/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version: 0.20.5

environment:
sdk: ">=2.17.0 <3.0.0"
flutter: ">=3.0.0"
flutter: ">=3.19.0-0.3.pre"

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

## 贡献
Expand Down
14 changes: 0 additions & 14 deletions packages/flutter_hooks/test/use_focus_node_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -73,16 +73,12 @@ void main() {
);

expect(focusNode.debugLabel, official.debugLabel);
expect(focusNode.onKey, official.onKey);
expect(focusNode.skipTraversal, official.skipTraversal);
expect(focusNode.canRequestFocus, official.canRequestFocus);
expect(focusNode.descendantsAreFocusable, official.descendantsAreFocusable);
});

testWidgets('has all the FocusNode parameters', (tester) async {
KeyEventResult onKey(FocusNode node, RawKeyEvent event) =>
KeyEventResult.ignored;

KeyEventResult onKeyEvent(FocusNode node, KeyEvent event) =>
KeyEventResult.ignored;

Expand All @@ -91,7 +87,6 @@ void main() {
HookBuilder(builder: (_) {
focusNode = useFocusNode(
debugLabel: 'Foo',
onKey: onKey,
onKeyEvent: onKeyEvent,
skipTraversal: true,
canRequestFocus: false,
Expand All @@ -102,19 +97,13 @@ void main() {
);

expect(focusNode.debugLabel, 'Foo');
expect(focusNode.onKey, onKey);
expect(focusNode.onKeyEvent, onKeyEvent);
expect(focusNode.skipTraversal, true);
expect(focusNode.canRequestFocus, false);
expect(focusNode.descendantsAreFocusable, false);
});

testWidgets('handles parameter change', (tester) async {
KeyEventResult onKey(FocusNode node, RawKeyEvent event) =>
KeyEventResult.ignored;
KeyEventResult onKey2(FocusNode node, RawKeyEvent event) =>
KeyEventResult.ignored;

KeyEventResult onKeyEvent(FocusNode node, KeyEvent event) =>
KeyEventResult.ignored;
KeyEventResult onKeyEvent2(FocusNode node, KeyEvent event) =>
Expand All @@ -125,7 +114,6 @@ void main() {
HookBuilder(builder: (_) {
focusNode = useFocusNode(
debugLabel: 'Foo',
onKey: onKey,
onKeyEvent: onKeyEvent,
skipTraversal: true,
canRequestFocus: false,
Expand All @@ -140,15 +128,13 @@ void main() {
HookBuilder(builder: (_) {
focusNode = useFocusNode(
debugLabel: 'Bar',
onKey: onKey2,
onKeyEvent: onKeyEvent2,
);

return Container();
}),
);

expect(focusNode.onKey, onKey2);
expect(focusNode.onKeyEvent, onKeyEvent2);
expect(focusNode.debugLabel, 'Bar');
expect(focusNode.skipTraversal, false);
Expand Down
14 changes: 0 additions & 14 deletions packages/flutter_hooks/test/use_focus_scope_node_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,11 @@ void main() {
);

expect(focusScopeNode.debugLabel, official.debugLabel);
expect(focusScopeNode.onKey, official.onKey);
expect(focusScopeNode.skipTraversal, official.skipTraversal);
expect(focusScopeNode.canRequestFocus, official.canRequestFocus);
});

testWidgets('has all the FocusScopeNode parameters', (tester) async {
KeyEventResult onKey(FocusNode node, RawKeyEvent event) =>
KeyEventResult.ignored;

KeyEventResult onKeyEvent(FocusNode node, KeyEvent event) =>
KeyEventResult.ignored;

Expand All @@ -90,7 +86,6 @@ void main() {
HookBuilder(builder: (_) {
focusScopeNode = useFocusScopeNode(
debugLabel: 'Foo',
onKey: onKey,
onKeyEvent: onKeyEvent,
skipTraversal: true,
canRequestFocus: false,
Expand All @@ -100,18 +95,12 @@ void main() {
);

expect(focusScopeNode.debugLabel, 'Foo');
expect(focusScopeNode.onKey, onKey);
expect(focusScopeNode.onKeyEvent, onKeyEvent);
expect(focusScopeNode.skipTraversal, true);
expect(focusScopeNode.canRequestFocus, false);
});

testWidgets('handles parameter change', (tester) async {
KeyEventResult onKey(FocusNode node, RawKeyEvent event) =>
KeyEventResult.ignored;
KeyEventResult onKey2(FocusNode node, RawKeyEvent event) =>
KeyEventResult.ignored;

KeyEventResult onKeyEvent(FocusNode node, KeyEvent event) =>
KeyEventResult.ignored;
KeyEventResult onKeyEvent2(FocusNode node, KeyEvent event) =>
Expand All @@ -122,7 +111,6 @@ void main() {
HookBuilder(builder: (_) {
focusScopeNode = useFocusScopeNode(
debugLabel: 'Foo',
onKey: onKey,
onKeyEvent: onKeyEvent,
skipTraversal: true,
canRequestFocus: false,
Expand All @@ -136,15 +124,13 @@ void main() {
HookBuilder(builder: (_) {
focusScopeNode = useFocusScopeNode(
debugLabel: 'Bar',
onKey: onKey2,
onKeyEvent: onKeyEvent2,
);

return Container();
}),
);

expect(focusScopeNode.onKey, onKey2);
expect(focusScopeNode.onKeyEvent, onKeyEvent2);
expect(focusScopeNode.debugLabel, 'Bar');
expect(focusScopeNode.skipTraversal, false);
Expand Down
Loading

0 comments on commit acb911f

Please sign in to comment.