Skip to content

Commit b24b1c6

Browse files
committed
nav: Add an About Zulip button to the main menu
Fixes: #1128
1 parent bb557a2 commit b24b1c6

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

lib/widgets/home.dart

+19
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';
@@ -264,6 +265,7 @@ void _showMainMenu(BuildContext context, {
264265
// TODO(#97): Settings
265266
// TODO(#661): Notifications
266267
// const SizedBox(height: 8),
268+
const _AboutZulipButton(),
267269
// TODO(#1095): VersionInfo
268270
];
269271

@@ -551,6 +553,23 @@ class _SwitchAccountButton extends _MenuButton {
551553
}
552554
}
553555

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

test/widgets/home_test.dart

+11
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:flutter_checks/flutter_checks.dart';
44
import 'package:flutter_test/flutter_test.dart';
55
import 'package:zulip/api/model/events.dart';
66
import 'package:zulip/model/store.dart';
7+
import 'package:zulip/widgets/about_zulip.dart';
78
import 'package:zulip/widgets/app.dart';
89
import 'package:zulip/widgets/app_bar.dart';
910
import 'package:zulip/widgets/home.dart';
@@ -215,6 +216,16 @@ void main () {
215216
check(find.byType(ProfilePage)).findsOne();
216217
check(find.text(eg.selfUser.fullName)).findsAny();
217218
});
219+
220+
testWidgets('_AboutZulipButton', (tester) async {
221+
await prepare(tester);
222+
await tapOpenMenu(tester);
223+
224+
await tester.tap(find.byIcon(ZulipIcons.info));
225+
await tester.pump(Duration.zero); // tap the button
226+
await tester.pump(const Duration(milliseconds: 250)); // wait for animation
227+
check(find.byType(AboutZulipPage)).findsOne();
228+
});
218229
});
219230

220231
group('_LoadingPlaceholderPage', () {

0 commit comments

Comments
 (0)