blob: 048909fbff1ec6ff803ce946a366ec6ef369f1cd [file] [log] [blame]
RouteBase get $iterableWithEnumRoute => GoRouteData.$route(
path: '/iterable-with-enum',
factory: $IterableWithEnumRouteExtension._fromState,
);
extension $IterableWithEnumRouteExtension on IterableWithEnumRoute {
static IterableWithEnumRoute _fromState(GoRouterState state) =>
IterableWithEnumRoute(
param: state.uri.queryParametersAll['param']
?.map(_$EnumOnlyUsedInIterableEnumMap._$fromName),
);
String get location => GoRouteData.$location(
'/iterable-with-enum',
queryParams: {
if (param != null)
'param':
param?.map((e) => _$EnumOnlyUsedInIterableEnumMap[e]).toList(),
},
);
void go(BuildContext context) => context.go(location);
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
void replace(BuildContext context) => context.replace(location);
}
const _$EnumOnlyUsedInIterableEnumMap = {
EnumOnlyUsedInIterable.a: 'a',
EnumOnlyUsedInIterable.b: 'b',
EnumOnlyUsedInIterable.c: 'c',
};
extension<T extends Enum> on Map<T, String> {
T _$fromName(String value) =>
entries.singleWhere((element) => element.value == value).key;
}