You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
samples/compass_app/app/lib/routing/router.dart

37 lines
1.1 KiB

import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import '../ui/results/view_models/results_viewmodel.dart';
import '../ui/results/widgets/results_screen.dart';
import '../ui/search_form/view_models/search_form_viewmodel.dart';
import '../ui/search_form/widgets/search_form_screen.dart';
/// Top go_router entry point
final router = GoRouter(
initialLocation: '/',
routes: [
GoRoute(
path: '/',
builder: (context, state) {
final viewModel =
SearchFormViewModel(continentRepository: context.read());
return SearchFormScreen(viewModel: viewModel);
},
routes: [
GoRoute(
path: 'results',
builder: (context, state) {
final viewModel = ResultsViewModel(
destinationRepository: context.read(),
);
final parameters = state.uri.queryParameters;
// TODO: Pass the rest of query parameters to the ViewModel
viewModel.search(continent: parameters['continent']);
return ResultsScreen(viewModel: viewModel);
},
),
],
),
],
);