| Index: third_party/pkg/route_hierarchical/example/full/company-info-loader.dart
|
| diff --git a/third_party/pkg/route_hierarchical/example/full/company-info-loader.dart b/third_party/pkg/route_hierarchical/example/full/company-info-loader.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b8184ccd20083e56c143bbc205d797d05c31807a
|
| --- /dev/null
|
| +++ b/third_party/pkg/route_hierarchical/example/full/company-info-loader.dart
|
| @@ -0,0 +1,39 @@
|
| +library company_info_loader;
|
| +
|
| +import 'dart:html';
|
| +
|
| +import 'package:web_ui/web_ui.dart';
|
| +import 'package:route_hierarchical/client.dart';
|
| +
|
| +import 'data.dart' as data;
|
| +
|
| +
|
| +class CompanyInfoLoaderComponent extends WebComponent {
|
| + RouteHandle route;
|
| + @observable var company;
|
| + @observable Route companyRoute;
|
| +
|
| + inserted() {
|
| + companyRoute = route.getRoute('companyId');
|
| + companyRoute.onRoute.listen(_showCompanyInfo);
|
| + }
|
| +
|
| + removed() {
|
| + route.discard();
|
| + }
|
| +
|
| + _showCompanyInfo(RouteEvent e) {
|
| + var tokenInt = int.parse(e.parameters['companyId'], onError: (s) => -1);
|
| + if (tokenInt > -1) {
|
| + data.fetchCompany(tokenInt).then((result) {
|
| + if (result == null) {
|
| + window.alert('Unable to fetch company $tokenInt');
|
| + }
|
| + company = result;
|
| + });
|
| + } else {
|
| + // TODO: navigate to invalid company route...
|
| + window.alert('Invalid company id $tokenInt');
|
| + }
|
| + }
|
| +}
|
|
|