Skip to content

Commit 67e3004

Browse files
committed
topicList: Add topic list page for each channel
fixes: #1158
1 parent 52d6909 commit 67e3004

21 files changed

+1000
-43
lines changed

assets/icons/ZulipIcons.ttf

408 Bytes
Binary file not shown.

assets/icons/chevron_down.svg

Lines changed: 3 additions & 0 deletions
Loading

assets/icons/list.svg

Lines changed: 3 additions & 0 deletions
Loading

assets/l10n/app_en.arb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@
108108
"@actionSheetOptionUnresolveTopic": {
109109
"description": "Label for the 'Mark as unresolved' button on the topic action sheet."
110110
},
111+
"actionSheetOptionTopicList": "Topic list",
112+
"@actionSheetOptionTopicList": {
113+
"description": "Label for a button in the channel action sheet that opens the list of topics in the channel"
114+
},
111115
"errorResolveTopicFailedTitle": "Failed to mark topic as resolved",
112116
"@errorResolveTopicFailedTitle": {
113117
"description": "Error title when marking a topic as resolved failed."
@@ -710,6 +714,10 @@
710714
"@channelFeedButtonTooltip": {
711715
"description": "Tooltip for button to navigate to a given channel's feed"
712716
},
717+
"topicListButtonTooltip": "Topic list",
718+
"@topicListButtonTooltip": {
719+
"description": "Tooltip for button to navigate to topic list page."
720+
},
713721
"notifGroupDmConversationLabel": "{senderFullName} to you and {numOthers, plural, =1{1 other} other{{numOthers} others}}",
714722
"@notifGroupDmConversationLabel": {
715723
"description": "Label for a group DM conversation notification.",
@@ -868,6 +876,14 @@
868876
"@emojiPickerSearchEmoji": {
869877
"description": "Hint text for the emoji picker search text field."
870878
},
879+
"errorFetchingTopics": "Error fetching topics",
880+
"@errorFetchingTopics": {
881+
"description": "Error title when fetching the topics failed."
882+
},
883+
"noTopicsInChannel": "No topics in the channel",
884+
"@noTopicsInChannel": {
885+
"description": "Text to show when a channel has no topics."
886+
},
871887
"noEarlierMessages": "No earlier messages",
872888
"@noEarlierMessages": {
873889
"description": "Text to show at the start of a message list if there are no earlier messages."

lib/generated/l10n/zulip_localizations.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,12 @@ abstract class ZulipLocalizations {
272272
/// **'Mark as unresolved'**
273273
String get actionSheetOptionUnresolveTopic;
274274

275+
/// Label for a button in the channel action sheet that opens the list of topics in the channel
276+
///
277+
/// In en, this message translates to:
278+
/// **'Topic list'**
279+
String get actionSheetOptionTopicList;
280+
275281
/// Error title when marking a topic as resolved failed.
276282
///
277283
/// In en, this message translates to:
@@ -1064,6 +1070,12 @@ abstract class ZulipLocalizations {
10641070
/// **'Channel feed'**
10651071
String get channelFeedButtonTooltip;
10661072

1073+
/// Tooltip for button to navigate to topic list page.
1074+
///
1075+
/// In en, this message translates to:
1076+
/// **'Topic list'**
1077+
String get topicListButtonTooltip;
1078+
10671079
/// Label for a group DM conversation notification.
10681080
///
10691081
/// In en, this message translates to:
@@ -1280,6 +1292,18 @@ abstract class ZulipLocalizations {
12801292
/// **'Search emoji'**
12811293
String get emojiPickerSearchEmoji;
12821294

1295+
/// Error title when fetching the topics failed.
1296+
///
1297+
/// In en, this message translates to:
1298+
/// **'Error fetching topics'**
1299+
String get errorFetchingTopics;
1300+
1301+
/// Text to show when a channel has no topics.
1302+
///
1303+
/// In en, this message translates to:
1304+
/// **'No topics in the channel'**
1305+
String get noTopicsInChannel;
1306+
12831307
/// Text to show at the start of a message list if there are no earlier messages.
12841308
///
12851309
/// In en, this message translates to:

lib/generated/l10n/zulip_localizations_ar.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
9494
@override
9595
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
9696

97+
@override
98+
String get actionSheetOptionTopicList => 'Topic list';
99+
97100
@override
98101
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
99102

@@ -582,6 +585,9 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
582585
@override
583586
String get channelFeedButtonTooltip => 'Channel feed';
584587

588+
@override
589+
String get topicListButtonTooltip => 'Topic list';
590+
585591
@override
586592
String notifGroupDmConversationLabel(String senderFullName, int numOthers) {
587593
String _temp0 = intl.Intl.pluralLogic(
@@ -706,6 +712,12 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
706712
@override
707713
String get emojiPickerSearchEmoji => 'Search emoji';
708714

715+
@override
716+
String get errorFetchingTopics => 'Error fetching topics';
717+
718+
@override
719+
String get noTopicsInChannel => 'No topics in the channel';
720+
709721
@override
710722
String get noEarlierMessages => 'No earlier messages';
711723

lib/generated/l10n/zulip_localizations_en.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
9494
@override
9595
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
9696

97+
@override
98+
String get actionSheetOptionTopicList => 'Topic list';
99+
97100
@override
98101
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
99102

@@ -582,6 +585,9 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
582585
@override
583586
String get channelFeedButtonTooltip => 'Channel feed';
584587

588+
@override
589+
String get topicListButtonTooltip => 'Topic list';
590+
585591
@override
586592
String notifGroupDmConversationLabel(String senderFullName, int numOthers) {
587593
String _temp0 = intl.Intl.pluralLogic(
@@ -706,6 +712,12 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
706712
@override
707713
String get emojiPickerSearchEmoji => 'Search emoji';
708714

715+
@override
716+
String get errorFetchingTopics => 'Error fetching topics';
717+
718+
@override
719+
String get noTopicsInChannel => 'No topics in the channel';
720+
709721
@override
710722
String get noEarlierMessages => 'No earlier messages';
711723

lib/generated/l10n/zulip_localizations_ja.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
9494
@override
9595
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
9696

97+
@override
98+
String get actionSheetOptionTopicList => 'Topic list';
99+
97100
@override
98101
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
99102

@@ -582,6 +585,9 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
582585
@override
583586
String get channelFeedButtonTooltip => 'Channel feed';
584587

588+
@override
589+
String get topicListButtonTooltip => 'Topic list';
590+
585591
@override
586592
String notifGroupDmConversationLabel(String senderFullName, int numOthers) {
587593
String _temp0 = intl.Intl.pluralLogic(
@@ -706,6 +712,12 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
706712
@override
707713
String get emojiPickerSearchEmoji => 'Search emoji';
708714

715+
@override
716+
String get errorFetchingTopics => 'Error fetching topics';
717+
718+
@override
719+
String get noTopicsInChannel => 'No topics in the channel';
720+
709721
@override
710722
String get noEarlierMessages => 'No earlier messages';
711723

lib/generated/l10n/zulip_localizations_nb.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ class ZulipLocalizationsNb extends ZulipLocalizations {
9494
@override
9595
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
9696

97+
@override
98+
String get actionSheetOptionTopicList => 'Topic list';
99+
97100
@override
98101
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
99102

@@ -582,6 +585,9 @@ class ZulipLocalizationsNb extends ZulipLocalizations {
582585
@override
583586
String get channelFeedButtonTooltip => 'Channel feed';
584587

588+
@override
589+
String get topicListButtonTooltip => 'Topic list';
590+
585591
@override
586592
String notifGroupDmConversationLabel(String senderFullName, int numOthers) {
587593
String _temp0 = intl.Intl.pluralLogic(
@@ -706,6 +712,12 @@ class ZulipLocalizationsNb extends ZulipLocalizations {
706712
@override
707713
String get emojiPickerSearchEmoji => 'Search emoji';
708714

715+
@override
716+
String get errorFetchingTopics => 'Error fetching topics';
717+
718+
@override
719+
String get noTopicsInChannel => 'No topics in the channel';
720+
709721
@override
710722
String get noEarlierMessages => 'No earlier messages';
711723

lib/generated/l10n/zulip_localizations_pl.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ class ZulipLocalizationsPl extends ZulipLocalizations {
9696
@override
9797
String get actionSheetOptionUnresolveTopic => 'Oznacz brak rozwiązania';
9898

99+
@override
100+
String get actionSheetOptionTopicList => 'Topic list';
101+
99102
@override
100103
String get errorResolveTopicFailedTitle =>
101104
'Nie udało się oznaczyć jako rozwiązany';
@@ -591,6 +594,9 @@ class ZulipLocalizationsPl extends ZulipLocalizations {
591594
@override
592595
String get channelFeedButtonTooltip => 'Strumień kanału';
593596

597+
@override
598+
String get topicListButtonTooltip => 'Topic list';
599+
594600
@override
595601
String notifGroupDmConversationLabel(String senderFullName, int numOthers) {
596602
String _temp0 = intl.Intl.pluralLogic(
@@ -717,6 +723,12 @@ class ZulipLocalizationsPl extends ZulipLocalizations {
717723
@override
718724
String get emojiPickerSearchEmoji => 'Szukaj emoji';
719725

726+
@override
727+
String get errorFetchingTopics => 'Error fetching topics';
728+
729+
@override
730+
String get noTopicsInChannel => 'No topics in the channel';
731+
720732
@override
721733
String get noEarlierMessages => 'Brak historii';
722734

lib/generated/l10n/zulip_localizations_ru.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ class ZulipLocalizationsRu extends ZulipLocalizations {
9696
@override
9797
String get actionSheetOptionUnresolveTopic => 'Снять отметку \"решено\"';
9898

99+
@override
100+
String get actionSheetOptionTopicList => 'Topic list';
101+
99102
@override
100103
String get errorResolveTopicFailedTitle =>
101104
'Не удалось отметить тему как решенную';
@@ -595,6 +598,9 @@ class ZulipLocalizationsRu extends ZulipLocalizations {
595598
@override
596599
String get channelFeedButtonTooltip => 'Лента канала';
597600

601+
@override
602+
String get topicListButtonTooltip => 'Topic list';
603+
598604
@override
599605
String notifGroupDmConversationLabel(String senderFullName, int numOthers) {
600606
String _temp0 = intl.Intl.pluralLogic(
@@ -720,6 +726,12 @@ class ZulipLocalizationsRu extends ZulipLocalizations {
720726
@override
721727
String get emojiPickerSearchEmoji => 'Поиск эмодзи';
722728

729+
@override
730+
String get errorFetchingTopics => 'Error fetching topics';
731+
732+
@override
733+
String get noTopicsInChannel => 'No topics in the channel';
734+
723735
@override
724736
String get noEarlierMessages => 'Предшествующих сообщений нет';
725737

lib/generated/l10n/zulip_localizations_sk.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ class ZulipLocalizationsSk extends ZulipLocalizations {
9494
@override
9595
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
9696

97+
@override
98+
String get actionSheetOptionTopicList => 'Topic list';
99+
97100
@override
98101
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
99102

@@ -584,6 +587,9 @@ class ZulipLocalizationsSk extends ZulipLocalizations {
584587
@override
585588
String get channelFeedButtonTooltip => 'Channel feed';
586589

590+
@override
591+
String get topicListButtonTooltip => 'Topic list';
592+
587593
@override
588594
String notifGroupDmConversationLabel(String senderFullName, int numOthers) {
589595
String _temp0 = intl.Intl.pluralLogic(
@@ -708,6 +714,12 @@ class ZulipLocalizationsSk extends ZulipLocalizations {
708714
@override
709715
String get emojiPickerSearchEmoji => 'Hľadať emotikon';
710716

717+
@override
718+
String get errorFetchingTopics => 'Error fetching topics';
719+
720+
@override
721+
String get noTopicsInChannel => 'No topics in the channel';
722+
711723
@override
712724
String get noEarlierMessages => 'No earlier messages';
713725

lib/generated/l10n/zulip_localizations_uk.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ class ZulipLocalizationsUk extends ZulipLocalizations {
9797
@override
9898
String get actionSheetOptionUnresolveTopic => 'Позначити як невирішене';
9999

100+
@override
101+
String get actionSheetOptionTopicList => 'Topic list';
102+
100103
@override
101104
String get errorResolveTopicFailedTitle =>
102105
'Не вдалося позначити тему як вирішену';
@@ -594,6 +597,9 @@ class ZulipLocalizationsUk extends ZulipLocalizations {
594597
@override
595598
String get channelFeedButtonTooltip => 'Стрічка каналу';
596599

600+
@override
601+
String get topicListButtonTooltip => 'Topic list';
602+
597603
@override
598604
String notifGroupDmConversationLabel(String senderFullName, int numOthers) {
599605
String _temp0 = intl.Intl.pluralLogic(
@@ -720,6 +726,12 @@ class ZulipLocalizationsUk extends ZulipLocalizations {
720726
@override
721727
String get emojiPickerSearchEmoji => 'Пошук емодзі';
722728

729+
@override
730+
String get errorFetchingTopics => 'Error fetching topics';
731+
732+
@override
733+
String get noTopicsInChannel => 'No topics in the channel';
734+
723735
@override
724736
String get noEarlierMessages => 'Немає попередніх повідомлень';
725737

0 commit comments

Comments
 (0)