Skip to content

Commit a757620

Browse files
committed
msglist: Navigate to stream and topic narrows from recipient headers
Fixes: #72
1 parent 73719bd commit a757620

File tree

1 file changed

+28
-20
lines changed

1 file changed

+28
-20
lines changed

lib/widgets/message_list.dart

+28-20
Original file line numberDiff line numberDiff line change
@@ -266,26 +266,34 @@ class StreamTopicRecipientHeader extends StatelessWidget {
266266
ThemeData.estimateBrightnessForColor(streamColor) == Brightness.dark
267267
? Colors.white
268268
: Colors.black;
269-
return ColoredBox(
270-
color: _kStreamMessageBorderColor,
271-
child: Row(mainAxisAlignment: MainAxisAlignment.start, children: [
272-
// TODO: Long stream name will break layout; find a fix.
273-
RecipientHeaderChevronContainer(
274-
color: streamColor,
275-
// TODO globe/lock icons for web-public and private streams
276-
child: Text(streamName, style: TextStyle(color: contrastingColor))),
277-
Expanded(
278-
child: Padding(
279-
// Web has padding 9, 3, 3, 2 here; but 5px is the chevron.
280-
padding: const EdgeInsets.fromLTRB(4, 3, 3, 2),
281-
child: Text(topic,
282-
// TODO: Give a way to see the whole topic (maybe a
283-
// long-press interaction?)
284-
overflow: TextOverflow.ellipsis,
285-
style: const TextStyle(fontWeight: FontWeight.w600)))),
286-
// TODO topic links?
287-
// Then web also has edit/resolve/mute buttons. Skip those for mobile.
288-
]));
269+
return GestureDetector(
270+
onTap: () => Navigator.push(context,
271+
MessageListPage.buildRoute(context: context,
272+
narrow: TopicNarrow(message.streamId, message.subject))),
273+
child: ColoredBox(
274+
color: _kStreamMessageBorderColor,
275+
child: Row(mainAxisAlignment: MainAxisAlignment.start, children: [
276+
// TODO: Long stream name will break layout; find a fix.
277+
GestureDetector(
278+
onTap: () => Navigator.push(context,
279+
MessageListPage.buildRoute(context: context,
280+
narrow: StreamNarrow(message.streamId))),
281+
child: RecipientHeaderChevronContainer(
282+
color: streamColor,
283+
// TODO globe/lock icons for web-public and private streams
284+
child: Text(streamName, style: TextStyle(color: contrastingColor)))),
285+
Expanded(
286+
child: Padding(
287+
// Web has padding 9, 3, 3, 2 here; but 5px is the chevron.
288+
padding: const EdgeInsets.fromLTRB(4, 3, 3, 2),
289+
child: Text(topic,
290+
// TODO: Give a way to see the whole topic (maybe a
291+
// long-press interaction?)
292+
overflow: TextOverflow.ellipsis,
293+
style: const TextStyle(fontWeight: FontWeight.w600)))),
294+
// TODO topic links?
295+
// Then web also has edit/resolve/mute buttons. Skip those for mobile.
296+
])));
289297
}
290298
}
291299

0 commit comments

Comments
 (0)