diff --git a/assets/excel.png b/assets/excel.png new file mode 100644 index 0000000..0c9bfb9 Binary files /dev/null and b/assets/excel.png differ diff --git a/lib/constants.dart b/lib/constants.dart index a01f525..8686cb9 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -41,3 +41,5 @@ Widget newNoMenuWidget = Center( ); Uri ghURI = Uri.parse("https://github.com/kphanipavan/IIITB_Menu"); +Uri excelSheetURI = Uri.parse( + "https://iiitbac-my.sharepoint.com/:x:/g/personal/foodcommittee_iiitb_ac_in/ESrcRZMPYFpOgk2VEPd0zd8BDfsMkTUXWM4hRi-2QNF44g?e=fjFkFy"); diff --git a/lib/views/about.dart b/lib/views/about.dart index 46e93ef..020ecb8 100644 --- a/lib/views/about.dart +++ b/lib/views/about.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import "package:iiitb_menu/constants.dart"; import "package:url_launcher/url_launcher.dart"; +import "package:iiitb_menu/widgets/linkButton.dart"; class AboutPage extends StatelessWidget { const AboutPage({Key? key}) : super(key: key); @@ -33,14 +34,13 @@ class AboutPage extends StatelessWidget { child: Text( "Menu updates every other Tuesday or when FoodComm does it."), ), - InkWell( - child: - const Image(image: AssetImage("assets/gh.png"), height: 20), - onTap: () async { - if (await canLaunchUrl(ghURI)) { - launchUrl(ghURI); - } - }), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + LinkButton(iconImage: "assets/gh.png", link: ghURI), + LinkButton(iconImage: "assets/excel.png", link: excelSheetURI), + ], + ), ], ), ); diff --git a/lib/widgets/linkButton.dart b/lib/widgets/linkButton.dart new file mode 100644 index 0000000..bc55bf8 --- /dev/null +++ b/lib/widgets/linkButton.dart @@ -0,0 +1,25 @@ +import "package:flutter/material.dart"; +import "package:url_launcher/url_launcher.dart"; + +class LinkButton extends StatelessWidget { + final Uri link; + final String iconImage; + final double height; + const LinkButton( + {Key? key, required this.link, required this.iconImage, this.height = 30}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(8.0), + child: InkWell( + child: Image(image: AssetImage(iconImage), height: height), + onTap: () async { + if (await canLaunchUrl(link)) { + launchUrl(link); + } + }), + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index d4ed0d3..b8efefe 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -71,6 +71,7 @@ flutter: assets: - assets/plate.png - assets/gh.png + - assets/excel.png # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see