Skip to content

Commit 126c4cc

Browse files
committed
new_dm: Add UI for starting new DM conversations
Add a modal bottom sheet UI for starting direct messages: - Search and select users from global list - Support single and group DMs - Navigate to message list after selection Design reference: https://www.figma.com/design/1JTNtYo9memgW7vV6d0ygq/Zulip-Mobile?node-id=4903-31879&p=f&t=pQP4QcxpccllCF7g-0 Fixes: zulip#127
1 parent 3217396 commit 126c4cc

14 files changed

+745
-2
lines changed

assets/l10n/app_en.arb

+24
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,30 @@
333333
"@composeBoxGenericContentHint": {
334334
"description": "Hint text for content input when sending a message."
335335
},
336+
"newDmSheetBackButtonLabel": "Back",
337+
"@newDmSheetBackButtonLabel": {
338+
"description": "Label for the back button in the new DM sheet, allowing the user to return to the previous screen."
339+
},
340+
"newDmSheetNextButtonLabel": "Next",
341+
"@newDmSheetNextButtonLabel": {
342+
"description": "Label for the front button in the new DM sheet, if applicable, for navigation or action."
343+
},
344+
"newDmSheetScreenTitle": "New DM",
345+
"@newDmSheetScreenTitle": {
346+
"description": "Title displayed at the top of the new DM screen."
347+
},
348+
"newDmFabButtonLabel": "New DM",
349+
"@newDmFabButtonLabel": {
350+
"description": "Label for the floating action button (FAB) that opens the new DM sheet."
351+
},
352+
"newDmSheetSearchHintEmpty": "Add one or more users",
353+
"@newDmSheetSearchHintEmpty": {
354+
"description": "Hint text for the search bar when no users are selected"
355+
},
356+
"newDmSheetSearchHintSomeSelected": "Add another user…",
357+
"@newDmSheetSearchHintSomeSelected": {
358+
"description": "Hint text for the search bar when at least one user is selected"
359+
},
336360
"composeBoxDmContentHint": "Message @{user}",
337361
"@composeBoxDmContentHint": {
338362
"description": "Hint text for content input when sending a message to one other person.",

lib/generated/l10n/zulip_localizations.dart

+36
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,42 @@ abstract class ZulipLocalizations {
549549
/// **'Type a message'**
550550
String get composeBoxGenericContentHint;
551551

552+
/// Label for the back button in the new DM sheet, allowing the user to return to the previous screen.
553+
///
554+
/// In en, this message translates to:
555+
/// **'Back'**
556+
String get newDmSheetBackButtonLabel;
557+
558+
/// Label for the front button in the new DM sheet, if applicable, for navigation or action.
559+
///
560+
/// In en, this message translates to:
561+
/// **'Next'**
562+
String get newDmSheetNextButtonLabel;
563+
564+
/// Title displayed at the top of the new DM screen.
565+
///
566+
/// In en, this message translates to:
567+
/// **'New DM'**
568+
String get newDmSheetScreenTitle;
569+
570+
/// Label for the floating action button (FAB) that opens the new DM sheet.
571+
///
572+
/// In en, this message translates to:
573+
/// **'New DM'**
574+
String get newDmFabButtonLabel;
575+
576+
/// Hint text for the search bar when no users are selected
577+
///
578+
/// In en, this message translates to:
579+
/// **'Add one or more users'**
580+
String get newDmSheetSearchHintEmpty;
581+
582+
/// Hint text for the search bar when at least one user is selected
583+
///
584+
/// In en, this message translates to:
585+
/// **'Add another user…'**
586+
String get newDmSheetSearchHintSomeSelected;
587+
552588
/// Hint text for content input when sending a message to one other person.
553589
///
554590
/// In en, this message translates to:

lib/generated/l10n/zulip_localizations_ar.dart

+18
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,24 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
264264
@override
265265
String get composeBoxGenericContentHint => 'Type a message';
266266

267+
@override
268+
String get newDmSheetBackButtonLabel => 'Back';
269+
270+
@override
271+
String get newDmSheetNextButtonLabel => 'Next';
272+
273+
@override
274+
String get newDmSheetScreenTitle => 'New DM';
275+
276+
@override
277+
String get newDmFabButtonLabel => 'New DM';
278+
279+
@override
280+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
281+
282+
@override
283+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
284+
267285
@override
268286
String composeBoxDmContentHint(String user) {
269287
return 'Message @$user';

lib/generated/l10n/zulip_localizations_en.dart

+18
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,24 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
264264
@override
265265
String get composeBoxGenericContentHint => 'Type a message';
266266

267+
@override
268+
String get newDmSheetBackButtonLabel => 'Back';
269+
270+
@override
271+
String get newDmSheetNextButtonLabel => 'Next';
272+
273+
@override
274+
String get newDmSheetScreenTitle => 'New DM';
275+
276+
@override
277+
String get newDmFabButtonLabel => 'New DM';
278+
279+
@override
280+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
281+
282+
@override
283+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
284+
267285
@override
268286
String composeBoxDmContentHint(String user) {
269287
return 'Message @$user';

lib/generated/l10n/zulip_localizations_ja.dart

+18
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,24 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
264264
@override
265265
String get composeBoxGenericContentHint => 'Type a message';
266266

267+
@override
268+
String get newDmSheetBackButtonLabel => 'Back';
269+
270+
@override
271+
String get newDmSheetNextButtonLabel => 'Next';
272+
273+
@override
274+
String get newDmSheetScreenTitle => 'New DM';
275+
276+
@override
277+
String get newDmFabButtonLabel => 'New DM';
278+
279+
@override
280+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
281+
282+
@override
283+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
284+
267285
@override
268286
String composeBoxDmContentHint(String user) {
269287
return 'Message @$user';

lib/generated/l10n/zulip_localizations_nb.dart

+18
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,24 @@ class ZulipLocalizationsNb extends ZulipLocalizations {
264264
@override
265265
String get composeBoxGenericContentHint => 'Type a message';
266266

267+
@override
268+
String get newDmSheetBackButtonLabel => 'Back';
269+
270+
@override
271+
String get newDmSheetNextButtonLabel => 'Next';
272+
273+
@override
274+
String get newDmSheetScreenTitle => 'New DM';
275+
276+
@override
277+
String get newDmFabButtonLabel => 'New DM';
278+
279+
@override
280+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
281+
282+
@override
283+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
284+
267285
@override
268286
String composeBoxDmContentHint(String user) {
269287
return 'Message @$user';

lib/generated/l10n/zulip_localizations_pl.dart

+18
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,24 @@ class ZulipLocalizationsPl extends ZulipLocalizations {
264264
@override
265265
String get composeBoxGenericContentHint => 'Wpisz wiadomość';
266266

267+
@override
268+
String get newDmSheetBackButtonLabel => 'Back';
269+
270+
@override
271+
String get newDmSheetNextButtonLabel => 'Next';
272+
273+
@override
274+
String get newDmSheetScreenTitle => 'New DM';
275+
276+
@override
277+
String get newDmFabButtonLabel => 'New DM';
278+
279+
@override
280+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
281+
282+
@override
283+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
284+
267285
@override
268286
String composeBoxDmContentHint(String user) {
269287
return 'Napisz do @$user';

lib/generated/l10n/zulip_localizations_ru.dart

+18
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,24 @@ class ZulipLocalizationsRu extends ZulipLocalizations {
264264
@override
265265
String get composeBoxGenericContentHint => 'Ввести сообщение';
266266

267+
@override
268+
String get newDmSheetBackButtonLabel => 'Back';
269+
270+
@override
271+
String get newDmSheetNextButtonLabel => 'Next';
272+
273+
@override
274+
String get newDmSheetScreenTitle => 'New DM';
275+
276+
@override
277+
String get newDmFabButtonLabel => 'New DM';
278+
279+
@override
280+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
281+
282+
@override
283+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
284+
267285
@override
268286
String composeBoxDmContentHint(String user) {
269287
return 'Сообщение для @$user';

lib/generated/l10n/zulip_localizations_sk.dart

+18
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,24 @@ class ZulipLocalizationsSk extends ZulipLocalizations {
264264
@override
265265
String get composeBoxGenericContentHint => 'Type a message';
266266

267+
@override
268+
String get newDmSheetBackButtonLabel => 'Back';
269+
270+
@override
271+
String get newDmSheetNextButtonLabel => 'Next';
272+
273+
@override
274+
String get newDmSheetScreenTitle => 'New DM';
275+
276+
@override
277+
String get newDmFabButtonLabel => 'New DM';
278+
279+
@override
280+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
281+
282+
@override
283+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
284+
267285
@override
268286
String composeBoxDmContentHint(String user) {
269287
return 'Message @$user';

0 commit comments

Comments
 (0)