Skip to content

Commit e7ad65e

Browse files
committed
nav: Remove *Page widgets for page bodies that can be reached in HomePage
Fixes: zulip#1035 Signed-off-by: Zixuan James Li <[email protected]>
1 parent 3f8509d commit e7ad65e

8 files changed

+22
-66
lines changed

lib/widgets/inbox.dart

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,14 @@ import '../api/model/model.dart';
44
import '../model/narrow.dart';
55
import '../model/recent_dm_conversations.dart';
66
import '../model/unreads.dart';
7-
import 'app_bar.dart';
87
import 'icons.dart';
98
import 'message_list.dart';
10-
import 'page.dart';
119
import 'sticky_header.dart';
1210
import 'store.dart';
1311
import 'text.dart';
1412
import 'theme.dart';
1513
import 'unread_count_badge.dart';
1614

17-
class InboxPage extends StatelessWidget {
18-
const InboxPage({super.key});
19-
20-
static Route<void> buildRoute({int? accountId, BuildContext? context}) {
21-
return MaterialAccountWidgetRoute(accountId: accountId, context: context,
22-
page: const InboxPage());
23-
}
24-
25-
@override
26-
Widget build(BuildContext context) {
27-
return Scaffold(
28-
appBar: ZulipAppBar(title: const Text('Inbox')),
29-
body: const InboxPageBody());
30-
}
31-
}
32-
3315
class InboxPageBody extends StatefulWidget {
3416
const InboxPageBody({super.key});
3517

lib/widgets/recent_dm_conversations.dart

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,15 @@
11
import 'package:flutter/material.dart';
22

3-
import '../generated/l10n/zulip_localizations.dart';
43
import '../model/narrow.dart';
54
import '../model/recent_dm_conversations.dart';
65
import '../model/unreads.dart';
7-
import 'app_bar.dart';
86
import 'content.dart';
97
import 'icons.dart';
108
import 'message_list.dart';
11-
import 'page.dart';
129
import 'store.dart';
1310
import 'theme.dart';
1411
import 'unread_count_badge.dart';
1512

16-
class RecentDmConversationsPage extends StatelessWidget {
17-
const RecentDmConversationsPage({super.key});
18-
19-
static Route<void> buildRoute({int? accountId, BuildContext? context}) {
20-
return MaterialAccountWidgetRoute(accountId: accountId, context: context,
21-
page: const RecentDmConversationsPage());
22-
}
23-
24-
@override
25-
Widget build(BuildContext context) {
26-
final zulipLocalizations = ZulipLocalizations.of(context);
27-
return Scaffold(
28-
appBar: ZulipAppBar(
29-
title: Text(zulipLocalizations.recentDmConversationsPageTitle)),
30-
body: const RecentDmConversationsPageBody());
31-
}
32-
}
33-
3413
class RecentDmConversationsPageBody extends StatefulWidget {
3514
const RecentDmConversationsPageBody({super.key});
3615

lib/widgets/subscription_list.dart

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,14 @@ import 'package:flutter/material.dart';
33
import '../api/model/model.dart';
44
import '../model/narrow.dart';
55
import '../model/unreads.dart';
6-
import 'app_bar.dart';
76
import 'icons.dart';
87
import 'message_list.dart';
9-
import 'page.dart';
108
import 'store.dart';
119
import 'text.dart';
1210
import 'theme.dart';
1311
import 'unread_count_badge.dart';
1412

1513
/// Scrollable listing of subscribed streams.
16-
class SubscriptionListPage extends StatelessWidget {
17-
const SubscriptionListPage({super.key});
18-
19-
static Route<void> buildRoute({int? accountId, BuildContext? context}) {
20-
return MaterialAccountWidgetRoute(accountId: accountId, context: context,
21-
page: const SubscriptionListPage());
22-
}
23-
24-
@override
25-
Widget build(BuildContext context) {
26-
return Scaffold(
27-
appBar: ZulipAppBar(title: const Text("Channels")),
28-
body: const SubscriptionListPageBody());
29-
}
30-
}
31-
3214
class SubscriptionListPageBody extends StatefulWidget {
3315
const SubscriptionListPageBody({super.key});
3416

test/widgets/actions_test.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,10 @@ void main() {
182182

183183
final pushedRoutes = <Route<dynamic>>[];
184184
testNavObserver.onPushed = (route, prevRoute) => pushedRoutes.add(route);
185-
final account1Route = InboxPage.buildRoute(accountId: account1.id);
186-
final account2Route = InboxPage.buildRoute(accountId: account2.id);
185+
final account1Route = MaterialAccountWidgetRoute(
186+
accountId: account1.id, page: const InboxPageBody());
187+
final account2Route = MaterialAccountWidgetRoute(
188+
accountId: account2.id, page: const InboxPageBody());
187189
unawaited(navigator.push(account1Route));
188190
unawaited(navigator.push(account2Route));
189191
await tester.pumpAndSettle();

test/widgets/home_test.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@ void main () {
4141
id: 0, message: eg.streamMessage(stream: stream, sender: eg.otherUser)));
4242

4343
await tester.pumpWidget(TestZulipApp(
44-
accountId: eg.selfAccount.id,
45-
child: const HomePage()));
44+
accountId: eg.selfAccount.id, child: const HomePage()));
4645
await tester.pumpAndSettle();
4746
}
4847

test/widgets/inbox_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import 'package:zulip/api/model/events.dart';
66
import 'package:zulip/api/model/model.dart';
77
import 'package:zulip/model/store.dart';
88
import 'package:zulip/widgets/color.dart';
9+
import 'package:zulip/widgets/home.dart';
910
import 'package:zulip/widgets/icons.dart';
10-
import 'package:zulip/widgets/inbox.dart';
1111
import 'package:zulip/widgets/channel_colors.dart';
1212

1313
import '../example_data.dart' as eg;
@@ -76,7 +76,7 @@ void main() {
7676
await tester.pumpWidget(TestZulipApp(
7777
accountId: eg.selfAccount.id,
7878
navigatorObservers: [if (navigatorObserver != null) navigatorObserver],
79-
child: const InboxPage(),
79+
child: const HomePage(),
8080
));
8181
await tester.pump();
8282

test/widgets/recent_dm_conversations_test.dart

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:zulip/api/model/events.dart';
66
import 'package:zulip/api/model/model.dart';
77
import 'package:zulip/model/narrow.dart';
88
import 'package:zulip/widgets/content.dart';
9+
import 'package:zulip/widgets/home.dart';
910
import 'package:zulip/widgets/icons.dart';
1011
import 'package:zulip/widgets/message_list.dart';
1112
import 'package:zulip/widgets/page.dart';
@@ -49,10 +50,16 @@ Future<void> setupPage(WidgetTester tester, {
4950
await tester.pumpWidget(TestZulipApp(
5051
accountId: eg.selfAccount.id,
5152
navigatorObservers: navigatorObserver != null ? [navigatorObserver] : [],
52-
child: const RecentDmConversationsPage()));
53+
child: const HomePage()));
5354

5455
// global store, per-account store, and page get loaded
5556
await tester.pumpAndSettle();
57+
58+
// Switch to direct messages tab.
59+
await tester.tap(find.descendant(
60+
of: find.byType(Center),
61+
matching: find.byIcon(ZulipIcons.user)));
62+
await tester.pump();
5663
}
5764

5865
void main() {
@@ -96,7 +103,7 @@ void main() {
96103
DmNarrow.ofMessage(messages.first, selfUserId: eg.selfUser.userId));
97104

98105
check(tester.any(oldestConversationFinder)).isFalse(); // not onscreen
99-
await tester.fling(find.byType(RecentDmConversationsPage),
106+
await tester.fling(find.byType(RecentDmConversationsPageBody),
100107
const Offset(0, -200), 4000);
101108
await tester.pumpAndSettle();
102109
check(tester.any(oldestConversationFinder)).isTrue(); // onscreen

test/widgets/subscription_list_test.dart

Lines changed: 6 additions & 1 deletion
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/initial_snapshot.dart';
66
import 'package:zulip/api/model/model.dart';
77
import 'package:zulip/widgets/color.dart';
8+
import 'package:zulip/widgets/home.dart';
89
import 'package:zulip/widgets/icons.dart';
910
import 'package:zulip/widgets/channel_colors.dart';
1011
import 'package:zulip/widgets/subscription_list.dart';
@@ -34,10 +35,14 @@ void main() {
3435
await testBinding.globalStore.add(eg.selfAccount, initialSnapshot);
3536

3637
await tester.pumpWidget(TestZulipApp(accountId: eg.selfAccount.id,
37-
child: const SubscriptionListPage()));
38+
child: const HomePage()));
3839

3940
// global store, per-account store
4041
await tester.pumpAndSettle();
42+
43+
// Switch to channels tab.
44+
await tester.tap(find.byIcon(ZulipIcons.hash_italic));
45+
await tester.pump();
4146
}
4247

4348
bool isPinnedHeaderInTree() {

0 commit comments

Comments
 (0)