Skip to content

Commit 710e403

Browse files
CaoGiaHieu-devFMorschel
authored andcommitted
[go_router_builder]: Fix The argument type 'String?' can't be assigned to the parameter type 'String' because 'String?' on path and query params (flutter#8737)
Impact of this pr flutter#8405 , params with required enum cannot parse Fixed : flutter/flutter#164354
1 parent 19c8e7b commit 710e403

File tree

10 files changed

+17
-11
lines changed

10 files changed

+17
-11
lines changed

packages/go_router_builder/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 2.8.2
2+
3+
- Fixes an issue when enum params are not required
4+
15
## 2.8.1
26

37
- Fixes an issue when navigate to router with invalid params

packages/go_router_builder/example/lib/all_types.g.dart

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/go_router_builder/example/lib/main.g.dart

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/go_router_builder/example/lib/stateful_shell_route_initial_location_example.g.dart

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/go_router_builder/lib/src/route_config.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -775,7 +775,7 @@ bool $boolConverterHelperName(String value) {
775775

776776
const String _enumConverterHelper = '''
777777
extension<T extends Enum> on Map<T, String> {
778-
T? $enumExtensionHelperName(String value) =>
778+
T? $enumExtensionHelperName(String? value) =>
779779
entries.where((element) => element.value == value).firstOrNull?.key;
780780
}''';
781781

packages/go_router_builder/lib/src/type_helpers.dart

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,13 @@ String _stateValueAccess(ParameterElement element, Set<String> pathParameters) {
115115
}
116116

117117
late String access;
118+
final String suffix =
119+
!element.type.isNullableType && !element.hasDefaultValue ? '!' : '';
118120
if (pathParameters.contains(element.name)) {
119-
access =
120-
'pathParameters[${escapeDartString(element.name)}]${element.isRequired ? '!' : ''}';
121+
access = 'pathParameters[${escapeDartString(element.name)}]$suffix';
121122
} else {
122-
access = 'uri.queryParameters[${escapeDartString(element.name.kebab)}]';
123+
access =
124+
'uri.queryParameters[${escapeDartString(element.name.kebab)}]$suffix';
123125
}
124126

125127
return access;

packages/go_router_builder/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: go_router_builder
22
description: >-
33
A builder that supports generated strongly-typed route helpers for
44
package:go_router
5-
version: 2.8.1
5+
version: 2.8.2
66
repository: https://github.com/flutter/packages/tree/main/packages/go_router_builder
77
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+go_router_builder%22
88

packages/go_router_builder/test_inputs/enum_parameter.dart.expect

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ const _$EnumTestEnumMap = {
2929
};
3030

3131
extension<T extends Enum> on Map<T, String> {
32-
T? _$fromName(String value) =>
32+
T? _$fromName(String? value) =>
3333
entries.where((element) => element.value == value).firstOrNull?.key;
3434
}

packages/go_router_builder/test_inputs/iterable_with_enum.dart.expect

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,6 @@ const _$EnumOnlyUsedInIterableEnumMap = {
3838
};
3939

4040
extension<T extends Enum> on Map<T, String> {
41-
T? _$fromName(String value) =>
41+
T? _$fromName(String? value) =>
4242
entries.where((element) => element.value == value).firstOrNull?.key;
4343
}

packages/go_router_builder/test_inputs/required_query_parameter.dart.expect

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ extension $NonNullableRequiredParamNotInPathExtension
77
on NonNullableRequiredParamNotInPath {
88
static NonNullableRequiredParamNotInPath _fromState(GoRouterState state) =>
99
NonNullableRequiredParamNotInPath(
10-
id: int.parse(state.uri.queryParameters['id'])!,
10+
id: int.parse(state.uri.queryParameters['id']!)!,
1111
);
1212

1313
String get location => GoRouteData.$location(

0 commit comments

Comments
 (0)