Skip to content

Commit eb3e2aa

Browse files
tomlin7gnprice
authored andcommitted
nav: Add an About Zulip button to the main menu
Fixes: #1128
1 parent 67cd4c8 commit eb3e2aa

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

lib/widgets/home.dart

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
44

55
import '../generated/l10n/zulip_localizations.dart';
66
import '../model/narrow.dart';
7+
import 'about_zulip.dart';
78
import 'action_sheet.dart';
89
import 'app.dart';
910
import 'app_bar.dart';
@@ -269,6 +270,7 @@ void _showMainMenu(BuildContext context, {
269270
// TODO(#97): Settings
270271
// TODO(#661): Notifications
271272
// const SizedBox(height: 8),
273+
const _AboutZulipButton(),
272274
// TODO(#1095): VersionInfo
273275
];
274276

@@ -556,6 +558,23 @@ class _SwitchAccountButton extends _MenuButton {
556558
}
557559
}
558560

561+
class _AboutZulipButton extends _MenuButton {
562+
const _AboutZulipButton();
563+
564+
@override
565+
IconData get icon => ZulipIcons.info;
566+
567+
@override
568+
String label(ZulipLocalizations zulipLocalizations) {
569+
return zulipLocalizations.aboutPageTitle;
570+
}
571+
572+
@override
573+
void onPressed(BuildContext context) {
574+
Navigator.of(context).push(AboutZulipPage.buildRoute(context));
575+
}
576+
}
577+
559578
/// Apply [Transform.scale] to the child widget when tapped, and reset its scale
560579
/// when released, while animating the transitions.
561580
class AnimatedScaleOnTap extends StatefulWidget {

test/widgets/home_test.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:flutter_test/flutter_test.dart';
55
import 'package:zulip/api/model/events.dart';
66
import 'package:zulip/model/narrow.dart';
77
import 'package:zulip/model/store.dart';
8+
import 'package:zulip/widgets/about_zulip.dart';
89
import 'package:zulip/widgets/app.dart';
910
import 'package:zulip/widgets/app_bar.dart';
1011
import 'package:zulip/widgets/home.dart';
@@ -238,6 +239,16 @@ void main () {
238239
check(find.byType(ProfilePage)).findsOne();
239240
check(find.text(eg.selfUser.fullName)).findsAny();
240241
});
242+
243+
testWidgets('_AboutZulipButton', (tester) async {
244+
await prepare(tester);
245+
await tapOpenMenu(tester);
246+
247+
await tester.tap(find.byIcon(ZulipIcons.info));
248+
await tester.pump(Duration.zero); // tap the button
249+
await tester.pump(const Duration(milliseconds: 250)); // wait for animation
250+
check(find.byType(AboutZulipPage)).findsOne();
251+
});
241252
});
242253

243254
group('_LoadingPlaceholderPage', () {

0 commit comments

Comments
 (0)