generateModelRoutes<T extends BaseModel> function
List<GoRoute>
generateModelRoutes<
T extends BaseModel>()
Implementation
List<GoRoute> generateModelRoutes<T extends BaseModel>() {
String typeName = getTypeName<T>();
return [
GoRoute(
path: '/${typeName}_list_page',
name: '${typeName}_list_page',
pageBuilder: (context, state) {
return CustomTransitionPage(
transitionsBuilder: (context, animation, secondaryAnimation, child) {
return SlideTransition(
position: Tween<Offset>(
begin: const Offset(1.25, 0.0),
end: Offset.zero,
).animate(animation),
child: child,
);
},
child: SliverListPage<T>(
middleWidgetsList: [SearchSection()],
),
);
},
),
GoRoute(
path: '/${typeName}_form_page',
name: '${typeName}_form_page',
pageBuilder: (context, state) {
final item = state.extra as T?;
return CustomTransitionPage(
transitionsBuilder: (context, animation, secondaryAnimation, child) {
return SlideTransition(
position: Tween<Offset>(
begin: const Offset(1.25, 0.0),
end: Offset.zero,
).animate(animation),
child: child,
);
},
child: ReactiveFormPage<T>(item: item),
);
},
),
GoRoute(
path: '/${typeName}_detail_page',
name: '${typeName}_detail_page',
pageBuilder: (context, state) {
final item = state.extra as T;
return CustomTransitionPage(
transitionsBuilder: (context, animation, secondaryAnimation, child) {
return SlideTransition(
position: Tween<Offset>(
begin: const Offset(1.25, 0.0),
end: Offset.zero,
).animate(animation),
child: child,
);
},
child: DetailPage<T>(item: item),
);
},
),
];
}