Skip to content

Commit 13a4acd

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: #127
1 parent afcebdd commit 13a4acd

15 files changed

+1049
-12
lines changed

assets/l10n/app_en.arb

Lines changed: 28 additions & 0 deletions
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

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,48 @@ abstract class ZulipLocalizations {
580580
/// **'Type a message'**
581581
String get composeBoxGenericContentHint;
582582

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

lib/generated/l10n/zulip_localizations_ar.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,27 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
291291
@override
292292
String get composeBoxGenericContentHint => 'Type a message';
293293

294+
@override
295+
String get newDmSheetBackButtonLabel => 'Back';
296+
297+
@override
298+
String get newDmSheetNextButtonLabel => 'Next';
299+
300+
@override
301+
String get newDmSheetScreenTitle => 'New DM';
302+
303+
@override
304+
String get newDmFabButtonLabel => 'New DM';
305+
306+
@override
307+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
308+
309+
@override
310+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
311+
312+
@override
313+
String get newDmSheetNoUsersFound => 'No users found';
314+
294315
@override
295316
String composeBoxDmContentHint(String user) {
296317
return 'Message @$user';

lib/generated/l10n/zulip_localizations_en.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,27 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
291291
@override
292292
String get composeBoxGenericContentHint => 'Type a message';
293293

294+
@override
295+
String get newDmSheetBackButtonLabel => 'Back';
296+
297+
@override
298+
String get newDmSheetNextButtonLabel => 'Next';
299+
300+
@override
301+
String get newDmSheetScreenTitle => 'New DM';
302+
303+
@override
304+
String get newDmFabButtonLabel => 'New DM';
305+
306+
@override
307+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
308+
309+
@override
310+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
311+
312+
@override
313+
String get newDmSheetNoUsersFound => 'No users found';
314+
294315
@override
295316
String composeBoxDmContentHint(String user) {
296317
return 'Message @$user';

lib/generated/l10n/zulip_localizations_ja.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,27 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
291291
@override
292292
String get composeBoxGenericContentHint => 'Type a message';
293293

294+
@override
295+
String get newDmSheetBackButtonLabel => 'Back';
296+
297+
@override
298+
String get newDmSheetNextButtonLabel => 'Next';
299+
300+
@override
301+
String get newDmSheetScreenTitle => 'New DM';
302+
303+
@override
304+
String get newDmFabButtonLabel => 'New DM';
305+
306+
@override
307+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
308+
309+
@override
310+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
311+
312+
@override
313+
String get newDmSheetNoUsersFound => 'No users found';
314+
294315
@override
295316
String composeBoxDmContentHint(String user) {
296317
return 'Message @$user';

lib/generated/l10n/zulip_localizations_nb.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,27 @@ class ZulipLocalizationsNb extends ZulipLocalizations {
291291
@override
292292
String get composeBoxGenericContentHint => 'Type a message';
293293

294+
@override
295+
String get newDmSheetBackButtonLabel => 'Back';
296+
297+
@override
298+
String get newDmSheetNextButtonLabel => 'Next';
299+
300+
@override
301+
String get newDmSheetScreenTitle => 'New DM';
302+
303+
@override
304+
String get newDmFabButtonLabel => 'New DM';
305+
306+
@override
307+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
308+
309+
@override
310+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
311+
312+
@override
313+
String get newDmSheetNoUsersFound => 'No users found';
314+
294315
@override
295316
String composeBoxDmContentHint(String user) {
296317
return 'Message @$user';

lib/generated/l10n/zulip_localizations_pl.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,27 @@ class ZulipLocalizationsPl extends ZulipLocalizations {
298298
@override
299299
String get composeBoxGenericContentHint => 'Wpisz wiadomość';
300300

301+
@override
302+
String get newDmSheetBackButtonLabel => 'Back';
303+
304+
@override
305+
String get newDmSheetNextButtonLabel => 'Next';
306+
307+
@override
308+
String get newDmSheetScreenTitle => 'New DM';
309+
310+
@override
311+
String get newDmFabButtonLabel => 'New DM';
312+
313+
@override
314+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
315+
316+
@override
317+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
318+
319+
@override
320+
String get newDmSheetNoUsersFound => 'No users found';
321+
301322
@override
302323
String composeBoxDmContentHint(String user) {
303324
return 'Napisz do @$user';

lib/generated/l10n/zulip_localizations_ru.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,27 @@ class ZulipLocalizationsRu extends ZulipLocalizations {
299299
@override
300300
String get composeBoxGenericContentHint => 'Ввести сообщение';
301301

302+
@override
303+
String get newDmSheetBackButtonLabel => 'Back';
304+
305+
@override
306+
String get newDmSheetNextButtonLabel => 'Next';
307+
308+
@override
309+
String get newDmSheetScreenTitle => 'New DM';
310+
311+
@override
312+
String get newDmFabButtonLabel => 'New DM';
313+
314+
@override
315+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
316+
317+
@override
318+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
319+
320+
@override
321+
String get newDmSheetNoUsersFound => 'No users found';
322+
302323
@override
303324
String composeBoxDmContentHint(String user) {
304325
return 'Сообщение для @$user';

lib/generated/l10n/zulip_localizations_sk.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,27 @@ class ZulipLocalizationsSk extends ZulipLocalizations {
291291
@override
292292
String get composeBoxGenericContentHint => 'Type a message';
293293

294+
@override
295+
String get newDmSheetBackButtonLabel => 'Back';
296+
297+
@override
298+
String get newDmSheetNextButtonLabel => 'Next';
299+
300+
@override
301+
String get newDmSheetScreenTitle => 'New DM';
302+
303+
@override
304+
String get newDmFabButtonLabel => 'New DM';
305+
306+
@override
307+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
308+
309+
@override
310+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
311+
312+
@override
313+
String get newDmSheetNoUsersFound => 'No users found';
314+
294315
@override
295316
String composeBoxDmContentHint(String user) {
296317
return 'Message @$user';

lib/generated/l10n/zulip_localizations_uk.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,27 @@ class ZulipLocalizationsUk extends ZulipLocalizations {
300300
@override
301301
String get composeBoxGenericContentHint => 'Ввести повідомлення';
302302

303+
@override
304+
String get newDmSheetBackButtonLabel => 'Back';
305+
306+
@override
307+
String get newDmSheetNextButtonLabel => 'Next';
308+
309+
@override
310+
String get newDmSheetScreenTitle => 'New DM';
311+
312+
@override
313+
String get newDmFabButtonLabel => 'New DM';
314+
315+
@override
316+
String get newDmSheetSearchHintEmpty => 'Add one or more users';
317+
318+
@override
319+
String get newDmSheetSearchHintSomeSelected => 'Add another user…';
320+
321+
@override
322+
String get newDmSheetNoUsersFound => 'No users found';
323+
303324
@override
304325
String composeBoxDmContentHint(String user) {
305326
return 'Повідомлення @$user';

0 commit comments

Comments
 (0)