| // Copyright 2019 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:flutter/material.dart'; |
| |
| import 'logic/links.dart'; |
| |
| /// Sidebar for navigating the different pages of Cocoon. |
| class NavigationDrawer extends StatelessWidget { |
| const NavigationDrawer({Key? key}) : super(key: key); |
| |
| @override |
| Widget build(BuildContext context) { |
| final List<CocoonLink> cocoonLinks = createCocoonLinks(context); |
| final String? currentRoute = ModalRoute.of(context)!.settings.name; |
| return Drawer( |
| child: ListView( |
| children: <Widget>[ |
| const DrawerHeader( |
| decoration: FlutterLogoDecoration( |
| margin: EdgeInsets.only(bottom: 24.0), |
| ), |
| child: Align( |
| alignment: Alignment.bottomCenter, |
| child: Text('Flutter Dashboard'), |
| ), |
| ), |
| for (CocoonLink link in cocoonLinks) |
| ListTile( |
| leading: link.icon, |
| title: Text(link.name!), |
| onTap: link.action, |
| selected: currentRoute == link.route, |
| ), |
| const AboutListTile( |
| icon: FlutterLogo(), |
| ), |
| ], |
| ), |
| ); |
| } |
| } |