Skip to content

Commit d221599

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 6b5f189 commit d221599

17 files changed

+1032
-20
lines changed

assets/l10n/app_en.arb

+28
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,34 @@
345345
"@composeBoxGenericContentHint": {
346346
"description": "Hint text for content input when sending a message."
347347
},
348+
"newDmSheetBackButtonLabel": "Back",
349+
"@newDmSheetBackButtonLabel": {
350+
"description": "Label for the back button in the new DM sheet, allowing the user to return to the previous screen."
351+
},
352+
"newDmSheetNextButtonLabel": "Next",
353+
"@newDmSheetNextButtonLabel": {
354+
"description": "Label for the front button in the new DM sheet, if applicable, for navigation or action."
355+
},
356+
"newDmSheetScreenTitle": "New DM",
357+
"@newDmSheetScreenTitle": {
358+
"description": "Title displayed at the top of the new DM screen."
359+
},
360+
"newDmFabButtonLabel": "New DM",
361+
"@newDmFabButtonLabel": {
362+
"description": "Label for the floating action button (FAB) that opens the new DM sheet."
363+
},
364+
"newDmSheetSearchHintEmpty": "Add one or more users",
365+
"@newDmSheetSearchHintEmpty": {
366+
"description": "Hint text for the search bar when no users are selected"
367+
},
368+
"newDmSheetSearchHintSomeSelected": "Add another user…",
369+
"@newDmSheetSearchHintSomeSelected": {
370+
"description": "Hint text for the search bar when at least one user is selected"
371+
},
372+
"newDmSheetNoUsersFound": "No users found",
373+
"@newDmSheetNoUsersFound": {
374+
"description": "Message shown in the new DM sheet when no users match the search."
375+
},
348376
"composeBoxDmContentHint": "Message @{user}",
349377
"@composeBoxDmContentHint": {
350378
"description": "Hint text for content input when sending a message to one other person.",

lib/generated/l10n/zulip_localizations.dart

+42
Original file line numberDiff line numberDiff line change
@@ -569,6 +569,48 @@ abstract class ZulipLocalizations {
569569
/// **'Type a message'**
570570
String get composeBoxGenericContentHint;
571571

572+
/// Label for the back button in the new DM sheet, allowing the user to return to the previous screen.
573+
///
574+
/// In en, this message translates to:
575+
/// **'Back'**
576+
String get newDmSheetBackButtonLabel;
577+
578+
/// Label for the front button in the new DM sheet, if applicable, for navigation or action.
579+
///
580+
/// In en, this message translates to:
581+
/// **'Next'**
582+
String get newDmSheetNextButtonLabel;
583+
584+
/// Title displayed at the top of the new DM screen.
585+
///
586+
/// In en, this message translates to:
587+
/// **'New DM'**
588+
String get newDmSheetScreenTitle;
589+
590+
/// Label for the floating action button (FAB) that opens the new DM sheet.
591+
///
592+
/// In en, this message translates to:
593+
/// **'New DM'**
594+
String get newDmFabButtonLabel;
595+
596+
/// Hint text for the search bar when no users are selected
597+
///
598+
/// In en, this message translates to:
599+
/// **'Add one or more users'**
600+
String get newDmSheetSearchHintEmpty;
601+
602+
/// Hint text for the search bar when at least one user is selected
603+
///
604+
/// In en, this message translates to:
605+
/// **'Add another user…'**
606+
String get newDmSheetSearchHintSomeSelected;
607+
608+
/// Message shown in the new DM sheet when no users match the search.
609+
///
610+
/// In en, this message translates to:
611+
/// **'No users found'**
612+
String get newDmSheetNoUsersFound;
613+
572614
/// Hint text for content input when sending a message to one other person.
573615
///
574616
/// In en, this message translates to:

lib/generated/l10n/zulip_localizations_ar.dart

+21
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,27 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Type a message';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
294+
@override
295+
String get newDmSheetNoUsersFound => 'No users found';
296+
276297
@override
277298
String composeBoxDmContentHint(String user) {
278299
return 'Message @$user';

lib/generated/l10n/zulip_localizations_en.dart

+21
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,27 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Type a message';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
294+
@override
295+
String get newDmSheetNoUsersFound => 'No users found';
296+
276297
@override
277298
String composeBoxDmContentHint(String user) {
278299
return 'Message @$user';

lib/generated/l10n/zulip_localizations_ja.dart

+21
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,27 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Type a message';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
294+
@override
295+
String get newDmSheetNoUsersFound => 'No users found';
296+
276297
@override
277298
String composeBoxDmContentHint(String user) {
278299
return 'Message @$user';

lib/generated/l10n/zulip_localizations_nb.dart

+21
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,27 @@ class ZulipLocalizationsNb extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Type a message';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
294+
@override
295+
String get newDmSheetNoUsersFound => 'No users found';
296+
276297
@override
277298
String composeBoxDmContentHint(String user) {
278299
return 'Message @$user';

lib/generated/l10n/zulip_localizations_pl.dart

+21
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,27 @@ class ZulipLocalizationsPl extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Wpisz wiadomość';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
294+
@override
295+
String get newDmSheetNoUsersFound => 'No users found';
296+
276297
@override
277298
String composeBoxDmContentHint(String user) {
278299
return 'Napisz do @$user';

lib/generated/l10n/zulip_localizations_ru.dart

+21
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,27 @@ class ZulipLocalizationsRu extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Ввести сообщение';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
294+
@override
295+
String get newDmSheetNoUsersFound => 'No users found';
296+
276297
@override
277298
String composeBoxDmContentHint(String user) {
278299
return 'Сообщение для @$user';

lib/generated/l10n/zulip_localizations_sk.dart

+21
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,27 @@ class ZulipLocalizationsSk extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Type a message';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
294+
@override
295+
String get newDmSheetNoUsersFound => 'No users found';
296+
276297
@override
277298
String composeBoxDmContentHint(String user) {
278299
return 'Message @$user';

lib/generated/l10n/zulip_localizations_uk.dart

+21
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,27 @@ class ZulipLocalizationsUk extends ZulipLocalizations {
273273
@override
274274
String get composeBoxGenericContentHint => 'Ввести повідомлення';
275275

276+
@override
277+
String get newDmSheetBackButtonLabel => 'Back';
278+
279+
@override
280+
String get newDmSheetNextButtonLabel => 'Next';
281+
282+
@override
283+
String get newDmSheetScreenTitle => 'New DM';
284+
285+
@override
286+
String get newDmFabButtonLabel => 'New DM';
287+
288+
@override
289+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
290+
291+
@override
292+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
293+
294+
@override
295+
String get newDmSheetNoUsersFound => 'No users found';
296+
276297
@override
277298
String composeBoxDmContentHint(String user) {
278299
return 'Повідомлення @$user';

0 commit comments

Comments
 (0)